前提条件就是不遍历表中的字段
(不能where field1 is null or field2 is null...)比如table11 2 null
2 3 4
null 1 3
null 5 null
2 3 1
我想用sql把第1, 3, 4条记录取出来
请问这种sql有可能写出来吗?
(不能where field1 is null or field2 is null...)比如table11 2 null
2 3 4
null 1 3
null 5 null
2 3 1
我想用sql把第1, 3, 4条记录取出来
请问这种sql有可能写出来吗?
where (field1+field2+field3) is null即可
换成乘*号也可以因为作为数字类型字段的field1+field2+field3中只要有一个为null,那么他们相加的结果就会为null
@Table VARCHAR(100)
AS
BEGIN
DECLARE @S VARCHAR(8000)
SET @S=''
SELECT @S=@S+' AND ISNULL('+NAME+','''')<>'''' ' FROM SYSCOLUMNS WHERE ID=OBJECT_ID(''+@Table+'')
ORDER BY COLORDER
Set @S=Stuff(@S,1,5,'')
SET @S='SELECT * FROM '+@Table+' WHERE 主键字段 NOT IN (SELECT 主键字段 FROM '+@Table+' WHERE '+@S+')'
EXEC(@S)
ENDGO--说明:该存储过程需要指定表的主键字段,与其它字段无关.
--查询的时候.只需要指名表名即可.exec UP_CHECKnull '表名'