我使用的是SQL Server 2005。我有一个带有文本列的表,在表中有许多行,其中该列的值不是空的,但它是空的。试着对比”会得到这样的回答:

数据类型text和varchar在不等于操作符中是不兼容的。

是否有一个特殊的函数来确定文本列的值是否为空而不是空?


当前回答

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

其他回答

你必须做到这两点:

从文本为空或类似文本的表中选择*

使用DATALENGTH方法,例如:

SELECT length = DATALENGTH(myField)
FROM myTABLE

试试这个:

select * from mytable where convert(varchar, mycolumn) = ''

希望能帮到你!

我知道这个帖子很古老,但是我发现它很有用。

它没有解决我的问题,返回记录与非空文本字段,所以我认为我将添加我的解决方案。

这就是where从句对我有用。

WHERE xyz LIKE CAST('% %' as text)

使用IS NULL操作符:

Select * from tb_Employee where ename is null