我正在使用 SQL Server 2005。我有一张表,其中有一个文本列,该列有许多行的值不为null,但为空。尝试与''进行比较会得到以下响应:
在不等于运算符中,数据类型text和varchar不兼容。
是否有特殊函数可以确定文本列的值不为null但为空吗?
我正在使用 SQL Server 2005。我有一张表,其中有一个文本列,该列有许多行的值不为null,但为空。尝试与''进行比较会得到以下响应:
在不等于运算符中,数据类型text和varchar不兼容。
是否有特殊函数可以确定文本列的值不为null但为空吗?
试试这个:
select * from mytable where convert(varchar, mycolumn) = ''
希望能帮到你!
SELECT coalesce(NULLIF(column_name,''),'NA') as 'desired_name') from table;
空值和空字符串是否等效?如果是,我会在我的应用程序中包含逻辑(或者如果应用程序是“开箱即用”的话,可能是触发器?)来强制字段为空或'',但不是另一个。如果您选择了'',那么您还可以将该列设置为NOT NULL。仅仅是数据清洁性问题。
你需要同时执行以下两个操作:
SELECT * FROM Table WHERE Text IS NULL or Text LIKE ''
我知道有很多关于这个问题的替代方案,但我只想把我在@Eric Z Beard和@Tim Cooper与@Enrique Garcia和@Uli Köhler中发现的最佳解决方案放在一起。
如果需要处理空格仅在您的用例场景中可能与空值相同的事实,因为下面的查询将返回1而不是0。
SELECT datalength(' ')
SELECT datalength(RTRIM(LTRIM(ISNULL([TextColumn], ''))))
DECLARE @temp as nvarchar(20)
SET @temp = NULL
--SET @temp = ''
--SET @temp = 'Test'
SELECT IIF(ISNULL(@temp,'')='','[Empty]',@temp)