22,209
社区成员
发帖
与我相关
我的任务
分享
DECLARE @s INT
SET @s = 3
SELECT * FROM @tb
WHERE 'A'= isnull(LTRIM(@s),'A') or value1 >@s
DECLARE @s INT
SET @s = null
declare @str varchar(100)
if @s is null
set @str='SELECT * FROM tb WHERE 1=1 '
else
set @str='SELECT * FROM tb WHERE 1=1 and value1>'+ltrim(@s)
exec(@s)
DECLARE @s INT
SET @s = 3
SELECT * FROM @tb WHERE @s is null or value1>=@s
/************ SET @s = null
(所影响的行数为 6 行)
name value1 value2 value3
---- ----------- ----------- -----------
a 1 2 3
b 2 2 3
c NULL 2 3
d -100010 2 1
e NULL 2 1
f 3 2 2
(所影响的行数为 6 行)
*/
/************ SET @s = 3
(所影响的行数为 6 行)
name value1 value2 value3
---- ----------- ----------- -----------
f 3 2 2
(所影响的行数为 1 行)
*/
DECLARE @s INT
SET @s = 3
SELECT * FROM @tb
WHERE 1= isnull(@s,1) or value1 >@s