检查 SQL Server 2005 XML 字段是否为空

问题描述 投票:0回答:2

我刚刚做了这个:

Delete FROM MyTable WHERE ScopeValue = "" 
Delete FROM G_Scope WHERE ScopeValue is ''
Delete FROM G_Scope WHERE ScopeValue = empty
Delete FROM G_Scope WHERE ScopeValue is empty

我想删除所有具有 xml 字段(不可为空)的行,其中 ScopeValue 列具有空条目意味着零个字符。

有人知道吗?

sql-server xml-column is-empty
2个回答
13
投票

试试这个:

 DELETE FROM dbo.G_Scope WHERE ScopeValue IS NULL

如果不包含值,则 SQL Server 列将为

NULL

另一种可能性是 XML 不为 NULL,但包含空字符串作为其值。为此,请使用以下命令:

-- The DATALENGTH of an empty XML column is 5
SELECT * FROM dbo.G_Scope WHERE DATALENGTH(ScopeValue) = 5

这是否显示了您感兴趣的行?


0
投票

选择* 来自我的表 WHERE MyXmlColumn.exist('/node()') = 1;

© www.soinside.com 2019 - 2024. All rights reserved.