我有#temp 表,我需要对该表中的所有数据进行分页。表格分页的最佳方式是什么?
create table #temp (
Id int
,SomeName nvarchar(100)
)
create table #tempPage (
Id int
,SomeName nvarchar(100)
,PageIndex int
)
--Test data
insert #temp (Id, SomeName) values
(1,'A'),
(2,'B'),
(3,'C'),
(4,'D'),
(5,'F'),
(6,'G'),
(7,'H'),
(8,'A1'),
(9,'B1'),
(10,'C1'),
(11,'D1'),
(12,'F1'),
(13,'G1'),
(14,'H1');
--Page size
declare @PageSize int = 5
--Max page count
declare @MaxPages float = (
select
case when count(Id)%@PageSize>0 then count(Id)/@PageSize+1 else count(Id)/@PageSize end
from #temp
)
declare @PageFrom int = 0
declare @CurrentPage int = 1 …Run Code Online (Sandbox Code Playgroud) 我在 SQL Server 中创建以下 UDF
CREATE Function [Fn_dd]
(@InputstartDate Date, @InputendDate Date)
returns @AllDates Table
(AllDate Date)
As
Begin
Declare @startDate date
Declare @endDate date
Declare @rDate date
set @startDate = @InputstartDate
set @EndDate = @InputendDate
while (@startDate <= @endDate)
Begin
insert into @AllDates values (@startDate )
set @startDate = DATEADD(dd,1,@startDate)
End
return
End
GO
Run Code Online (Sandbox Code Playgroud)
但是当我在数据中使用它时会出现错误
select
dbo.Fn_dd('2020-01-02','2020-02-08')
from dbo.Txns
Run Code Online (Sandbox Code Playgroud)
错误信息
Cannot find either column "dbo" or the user-defined function or aggregate "dbo.Fn_dd", or the name is ambiguous.
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
我有一个名为 tab_stores 的表,它的结构如下所示
CREATE TABLE tab_stores
(
id_num INT IDENTITY(1, 1),
sName VARCHAR(20),
mySKey VARCHAR(20)
);
Run Code Online (Sandbox Code Playgroud)
现在,当我使用下面的查询在此表中插入值时,它会插入值并增加id_num+1,这工作正常。
INSERT tab_stores (sName, mySKey)
VALUES ('Store', 'Store');
Run Code Online (Sandbox Code Playgroud)
插入的数据是
1,Store,Store
Run Code Online (Sandbox Code Playgroud)
我想稍微修改一下,以便当我插入行时,自动递增的列值应该被后固定并添加到mySKey列中,所以结果应该是
1,Store,Store1
Run Code Online (Sandbox Code Playgroud)
我尝试使用下面的查询,但它不起作用 - 我得到
消息 207,级别 16,状态 1,服务器 49706b09f367,第 7 行
无效的列名称“id_num”
INSERT tab_stores (sName, mySKey)
VALUES ('Store', 'Store' + id_num);
Run Code Online (Sandbox Code Playgroud)
谁能帮帮我吗?谢谢
我需要帮助返回查询中的值.考虑下面的示例,其中A列中的值链接到B列:
Column A Column B
--------- ---------
45008 AQZ45008D
45008 ABC12345
45007 45007AX
45007 11652019
45007 JMD45007
Run Code Online (Sandbox Code Playgroud)
我只需要返回行A,其中列A中的值可以在B列的某处找到.因此,在此示例中,需要返回行1,3和5.
我希望这是一个明显的例子.谢谢你的帮助!
我想这是一个简单的问题,但我需要帮助.
declare @Date date
SET @Date =GETDATE()
print @date
Run Code Online (Sandbox Code Playgroud)
宣言给了我结果: 2013-08-04
但我还需要几毫秒和几分钟.
我怎么能做到这一点?
我正在使用SQL Server 2012,我有一个名为Employee的表,我试图获得结果
SrNo | Name_of_Employee | Known_Technology | No_of_Times
------+--------------------+------------------------+-----------------
1 | Mahesh Kumar | C#.net | 2
| | SQL Server | 3
| | ASP.NET | 1
2 | John Dias | JAVA | 2
| | VB.NET | 1
| | Jquery | 2
3 | Sijo Paul | Style Sheet | 1
| | MySQL | 2
4 | Nichol Sami | ASP.NET | 3
| | JAVA | 2
| | VB.NET | 1 … 更具体地说,对于问题和标签之间的多对多关系作为sql server表(包括帮助表QuestionsWithTags),需要一个query/sp,它返回所有具有以下标记集"t1","t2"的问题. "和"t3".鉴别器没有任何标签,但所有这些标签都不少于此.
提前致谢.
我想使用SQL Server 2012创建一个存储过程,该存储过程传入一个字符串列表并检查每个条目。Iv将列表添加到一个逗号分隔的字符串'UserGroupsAllowedToViewMap'中。这适用于一个条目,但是我需要检查它是否包含多个条目。
public DataTable GetMapsWithWorkspaceForUserGroups(int workspaceID, string UserGroupsAllowedToViewMap)
{
DataTable mapDets = new DataTable();
SqlCommand oComm = new SqlCommand();
SqlParameter spParam_WrkSpaceId = new SqlParameter();
SqlParameter spParam_ViewMap = new SqlParameter();
SqlParameter[] spParams = new SqlParameter[2];
SqlDataAdapter daUserMaps = new SqlDataAdapter();
try
{
spParam_WrkSpaceId.ParameterName = "@workspaceID";
spParam_WrkSpaceId.Value = workspaceID;
spParams[0] = spParam_WrkSpaceId;
spParam_ViewMap.ParameterName = "@ViewMap";
spParam_ViewMap.Value = UserGroupsAllowedToViewMap;
spParams[1] = spParam_ViewMap;
oComm = CreateCommand("GetWorkspaceMapDetailsForUserByGroups", spParams, TypeOfConnectionString.GeoAppBuilder);
daUserMaps.SelectCommand = oComm;
daUserMaps.Fill(mapDets);
}
catch (Exception e)
{
throw (e);
}
finally
{
CloseConnection(); …Run Code Online (Sandbox Code Playgroud) 这是我在SQLServer 2005中编写的存储过程.现在我们转向SQL2012并在我使用的地方收到大量错误*=.我知道我必须使用LEFT OUTER JOIN语法,但不知怎的,我很难过.有人可以帮帮我吗 ?我在where子句中使用ABS的位置也会出错.
These 2 lines in question in WHERE CLAUSE BELOW
currhold.current_hold__001 *= #tmp_transac.current_hold__001 and
((abs(t_quantity_c)> 0.01 and #tmp_transac.current_hold__001 is null) or
Run Code Online (Sandbox Code Playgroud)
完整的SP就在这里
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[usp_getEPMData_GFS]
AS
BEGIN
SET NOCOUNT ON;
IF OBJECT_ID('tempdb..#factortemp', 'u') IS NOT NULL
BEGIN
DROP TABLE #factortemp
END
IF OBJECT_ID('tempdb..#transactemp', 'u') IS NOT NULL
BEGIN
DROP TABLE #transactemp
END
SELECT *
INTO #transactemp
FROM transac
WHERE tran_type IN ( 'BUY', 'SHORT' …Run Code Online (Sandbox Code Playgroud) 我正在使用Sql Server 2012.考虑表模式,
create table A (col1 int, col2 int)
Run Code Online (Sandbox Code Playgroud)
我正在尝试执行此查询,
select col1, col2, col3, col4 from A
我得到执行错误的col3和col4不表.
但是有没有办法,这两列可以在结果中显示NULL为每行的值,即使它在表中不可用?
sql-server-2012 ×10
sql-server ×9
sql ×8
t-sql ×4
c# ×1
database ×1
identity ×1
insert ×1
outer-join ×1
sql-like ×1
ssms-2012 ×1