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

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

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


当前回答

你必须做到这两点:

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

其他回答

我将测试SUBSTRING(textColumn, 0,1)

where datalength(mytextfield)=0

它会做两件事: 空检查和字符串空检查 将空值替换为默认值,例如NA。

SELECT coalesce(NULLIF(column_name,''),'NA') as 'desired_name') from table;

null和空字符串是等价的吗?如果它们是,我会在我的应用程序中包括逻辑(或者可能是一个触发器,如果应用程序是“开箱即用”?)强制字段为null或“,但不是其他。如果你使用",那么你也可以将列设置为NOT NULL。只是数据清洁的问题。

SELECT * FROM TABLE
WHERE ISNULL(FIELD, '')=''