我有以下SQL语句:
SELECT CONCAT(ISNULL(CONCAT(full_name,' ' ,'( ',(aff_bus) ),'('),' ) ') AS shnames,contactrecord_id
FROM contactrecord
ORDER BY shnames ASC
我在括号中显示aff_bus
列,但是如果aff_bus
列为空白,我不希望使用括号。如果aff_bus
列为空白,如何删除括号?
答案 0 :(得分:4)
使用CASE检查aff_bus
是否为空
SELECT
CASE WHEN aff_bus IS NULL THEN full_name
WHEN aff_bus = '' THEN full_name
ELSE CONCAT(full_name, '(', aff_bus, ')')
END as shshames,
contactrecord_id
FROM contactrecord
ORDER BY shnames ASC
答案 1 :(得分:4)
利用以下事实:将NULL
与“添加”返回NULL
:
SELECT ISNULL(full_name, '') + ISNULL(' ( ' + aff_bus + ' )', '') AS shnames, contactrecord_id
FROM contactrecord
ORDER BY shnames ASC
答案 2 :(得分:0)
用例语句检查列为空还是空白。
SELECT (CASE WHEN AFF_BUS IS NOT NULL AND AFF_BUS != ''
THEN CONCAT(FULL_NAME,' ( ',aff_bus, ' ) ')
ELSE CONCAT (FULL_NAME,'')
END) AS shnames, CONTACTRECORD_ID FROM CONTACTRECORD ORDER BY shnames ASC ;