将MS SQL映像列值转换为bit或int 0/1

时间:2013-09-21 14:28:56

标签: sql-server

由供应商维护的收缩包装产品的数据库包含一个人员表,其中一些人在另一个子表中有图片。我需要在SQL语句中确定谁有图片,谁没有,并举起一面旗帜。

将图像列转换为0或1的select语句是什么,具体取决于行中的图像值是否如下所示?

数据:

photo
------------
null
@$@#$#@$#@$#&^$%^%53452^#$%#5...

结果:

photoFlag
-----------
0
1

当然可以在代码中的客户端上完成,但我不想将图像值带到网络中并进入客户端地址空间。

我想不出比

更好的东西
SELECT CONVERT(CHAR(1), CONVERT(VARBINARY(MAX),photo)) AS photoFlag FROM photos

然后在客户端上调用.IsNull。但我没有将它链接起来,因为它并不优雅。

1 个答案:

答案 0 :(得分:2)

如何使用CASE()

SELECT CASE WHEN photo IS NULL THEN 0 ELSE 1 END AS photoFlag FROM photos