34,593
社区成员
发帖
与我相关
我的任务
分享
SELECT
CASE
WHEN type = 1 THEN
(SELECT TOP 20 * FROM a )
ELSE
(SELECT TOP 100 * FROM a )
END AS lst
FROM
a
if exists(select * from a where type=1 )
select top 20 * from a
esle
select top 100 * from a
DECLARE @type INT
SET @type = 1
SELECT TOP ( CASE WHEN @type = 1 THEN 20
ELSE 100
END )
*
FROM a
f_id f_type
1 0
2 1
3 1
4 0
...
if type = 1
SELECT top (20) * FROM a
else
SELECT top (100) * FROM a
DECLARE @type INT
SET @type=1
DECLARE @sql VARCHAR(max)
SET @sql='SELECT top ('+CASE @type WHEN 1 THEN '20' ELSE '100' END +') * FROM a '
PRINT @sql
/*
SELECT top (20) * FROM a
*/
select top 20 * from a where f_type=1
union all
select top 100 * from a where f_type<>1