检查image列是否为null

Gis*_*sli 3 sql t-sql sql-server

我需要找出表中的图像列是否为空.我一直在尝试使用,CASE但我总是收到错误.

查询:

SELECT  OutgoindDoc = CASE ReceivedData       
                        WHEN null THEN 'null'
                        ELSE CONVERT(xml,(CONVERT(varbinary(max),ReceivedData))) 
                      END
FROM    ib_IncomingData 
Run Code Online (Sandbox Code Playgroud)

而我得到的错误:

消息306,级别16,状态1,行1
除非使用IS NULL或LIKE运算符,否则无法比较或排序text,ntext和image数据类型.

我可以用什么来获得我需要的结果?

Lig*_*ica 5

CASE <expression> WHEN <value> THEN使用相等/等价比较,但您需要IS NULL检查,因为NULL不是可比数量 - 并且 - 如错误所示 - 图像不能"比较".

幸运的是,还有另一个构造 - CASE WHEN <test> THEN将相等性带入用户提供的参数中,允许您省略它:

SELECT  OutgoindDoc = CASE
                        WHEN ReceivedData IS NULL THEN
                           'null'
                        ELSE
                           CONVERT(xml,(CONVERT(varbinary(max),ReceivedData))) 
                      END
FROM    ib_IncomingData
Run Code Online (Sandbox Code Playgroud)