我有一个sql语句,它将两个列ItemNumber和Name连接成一个变量。我将此变量用作列表框的DataTextField。一切似乎都很棒。我确实发现了一个问题..某些行在Name字段中有一个空值,当它返回变量时,该变量为null。
所以我问是否有办法检查该空值,而只是将项目编号放在其位置?
这是我的SQL语句
SELECT ProductID, Name, CustItemNum, CustItemNum + ' - ' + Name AS itemNumName
FROM Item it inner join JITVendors jit on it.Catalog_code = jit.Catalog_code
WHERE jit.VendorName = 'Vendor'
ORDER BY Name
如果有任何其他可能有用的代码,请告诉我,我将能够提供。谢谢
答案 0 :(得分:6)
您可以使用coalesce
将null
名称替换为空字符串:
CustItemNum + coalesce(' - ' + Name,'') AS itemNumName
答案 1 :(得分:3)
如评论中建议的@ ashes999,您可以使用ISNULL
:
SELECT ProductID, Name, CustItemNum, ISNULL(CustItemNum,'') + ' - ' + ISNULL(Name,'') AS itemNumName
FROM Item it inner join JITVendors jit on it.Catalog_code = jit.Catalog_code
WHERE jit.VendorName = 'Vendor'
ORDER BY Name
答案 2 :(得分:2)
另一个尚未提及的选项,如果你想在任何地方都这样做,而不是每次都手动合并空字符串:
SET CONCAT_NULL_YIELDS_NULL OFF
(默认为开)。启用时,将NULL连接到字符串会产生NULL。关闭时,此服务器选项在将字符串连接在一起时将其视为空字符串(例如,当关闭字符串时,任何字符串连接为NULL将产生原始字符串)。