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

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

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


当前回答

试试这个:

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

希望能帮到你!

其他回答

我想有一个预定义的文本(“无实验室可用”)显示,如果值为null或空,我的朋友帮助我:

StrengthInfo = CASE WHEN ((SELECT COUNT(UnitsOrdered) FROM [Data_Sub_orders].[dbo].[Snappy_Orders_Sub] WHERE IdPatient = @PatientId and IdDrugService = 226)> 0)
                            THEN cast((S.UnitsOrdered) as varchar(50))
                    ELSE 'No Labs Available'
                    END
DECLARE @temp as nvarchar(20)

SET @temp = NULL
--SET @temp = ''
--SET @temp = 'Test'

SELECT IIF(ISNULL(@temp,'')='','[Empty]',@temp)

只获取空值(而不是空值):

SELECT * FROM myTable WHERE myColumn = ''

获取空值和空值:

SELECT * FROM myTable WHERE myColumn IS NULL OR myColumn = ''

只获取空值:

SELECT * FROM myTable WHERE myColumn IS NULL

获取非null和empty的值:

SELECT * FROM myTable WHERE myColumn <> ''

记住,只在必要时使用LIKE短语,因为与其他类型的搜索相比,它们会降低性能。

你必须做到这两点:

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

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