如何检查SQL Server文本列是否为空?

时间:2020-03-05 18:44:41  来源:igfitidea点击:

我正在使用SQL Server2005. 我有一个带有文本列的表,并且该表中有很多行,其中该列的值不为null,但为空。尝试与""进行比较,会产生以下响应:

The data types text and varchar are incompatible in the not equal to operator.

是否有一个特殊功能来确定文本列的值是否不是null而是空的?

解决方案

回答

我将针对SUBSTRING(textColumn,0,1)进行测试

回答

where datalength(mytextfield)=0

回答

实际上,我们只需要使用LIKE运算符即可。

SELECT * FROM mytable WHERE mytextfield LIKE ''

回答

null和空字符串等效吗?如果是的话,我将在应用程序中包含逻辑(如果应用程序是"开箱即用",则可能包含触发器?)来强制字段为null或者",而不是其他字段。如果使用'',则也可以将列设置为NOT NULL。只是数据清洁的事情。

回答

ISNULL(
case textcolum1
    WHEN '' THEN NULL
    ELSE textcolum1
END 
,textcolum2) textcolum1