CREATE TABLE Table_a (varname VARCHAR(20)) INSERT INTO Table_a ( varname ) SELECT 'a' UNION ALL SELECT NULL SELECT * FROM Table_a WHERE isnull(varname,'')=isnull(varname,'') /* varname -------------------- a NULL(2 行受影响) */
[code=SQ]select * Table_a where varname=varname or varname is null[/code]
[code=SQ]select * Table_a where varname=varname or varname is null[/code]
select * Table_a 即可.
is null或者is not null
select * from Table_a where varname=varname or varname is null
select * from Table_a where varname is null 是这个吗?
我的意思是有个存储过程,输入@varname,如果@varname为null,则varname字段要全选(就是我想的那句varname=varname,但是varname=null的记录却不出来),如果@varname不为null,则varname=@varname 我的写法是:SELECT * FROM Table_a WHERE varname=case when @varname is null then varname else @varname end 但是如果输入的@varname为null时,结果里没有出现字段varname为null的记录
INSERT INTO Table_a
(
varname
)
SELECT 'a' UNION ALL
SELECT NULL SELECT * FROM Table_a WHERE isnull(varname,'')=isnull(varname,'')
/*
varname
--------------------
a
NULL(2 行受影响)
*/
from Table_a where varname is null
是这个吗?
我的意思是有个存储过程,输入@varname,如果@varname为null,则varname字段要全选(就是我想的那句varname=varname,但是varname=null的记录却不出来),如果@varname不为null,则varname=@varname
我的写法是:SELECT * FROM Table_a
WHERE varname=case when @varname is null then varname
else @varname end
但是如果输入的@varname为null时,结果里没有出现字段varname为null的记录