Sql server 2008 选择没有空值的行
在sql数据库中,我需要一个脚本来选择所有没有空值的行,如下所示:Sql server 2008 选择没有空值的行,sql-server-2008,select,Sql Server 2008,Select,在sql数据库中,我需要一个脚本来选择所有没有空值的行,如下所示: For all the rows in the database if row has no null values select it 列是动态的,我不知道它们的编号或名称 谢谢你方法: 从sys.columns获取表的列名 使用多个WHERE条件AND进行选择:WHERE ColA不为NULL,ColB不为NULL等等 这与这个问题相反 通过修改来查找没有空值的行的答案如下所示 ;with x
For all the rows in the database
if row has no null values
select it
列是动态的,我不知道它们的编号或名称
谢谢你方法:
- 从sys.columns获取表的列名
- 使用多个WHERE条件AND进行选择:WHERE ColA不为NULL,ColB不为NULL等等
- 这与这个问题相反
通过修改来查找没有空值的行的答案如下所示
;with xmlnamespaces('http://www.w3.org/2001/XMLSchema-instance' as ns)
select *
from YourTable as T
where
(
select T.*
for xml path('row'), elements xsinil, type
).exist('//*/@ns:nil') = 0
修改后的答案是
DECLARE @tb NVARCHAR(255) = N'YourTable';
DECLARE @sql NVARCHAR(MAX) = N'SELECT * FROM ' + @tb
+ ' WHERE 1 = 1';
SELECT @sql += N' AND ' + QUOTENAME(name) + ' IS NOT NULL'
FROM sys.columns
WHERE [object_id] = OBJECT_ID(@tb);
EXEC sp_executesql @sql;
你是说一张特定的桌子吗?还是整个数据库?你说的是什么样的“动态”。包括临时表吗?