27,579
社区成员
发帖
与我相关
我的任务
分享
if(1=1)
begin
select * from ts_user
end
if(1=1)
begin
select * from ts_user
end
那可以通过动态语句来实现。
DECLARE @Sql NVARCHAR(max),@Where NVARCHAR(max)
if 1=1
set @where=' ...'
if 1=2
set @where=' ....'
if xxxx
set @where='.....'
set @sql='select * from ts_user'+@where
IF OBJECT_ID('Tempdb..#ts_user'') IS NOT NULL
DROP TABLE #ts_user'
CREATE TABLE #ts_user'
(
.....--这里新建的临时表与你的ts_user'的结构一致
)
insert #ts_user exec(@sql)
;WITH CTE AS
(
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()) AS ROW,* FROM #ts_user'
)
SELECT * FROM CTE WHERE ROW BETWEEN XX AND XX
那你就在每个IF里面用ROW_NUMBER()OVER加行号分页啊 都一样的
;WITH CTE AS
(
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()) AS ROW,* FROM TB
)
SELECT * FROM CTE WHERE ROW BETWEEN XX AND XX
select * from (
if(1=1)
begin
select * from ts_user
end
if(1=2)
begin
select * from ts_user
end
) a
这样 我的调整就最小。