concat SQL查询中的If语句
我有以下SQL语句:concat SQL查询中的If语句,sql,sql-server,Sql,Sql Server,我有以下SQL语句: SELECT CONCAT(ISNULL(CONCAT(full_name,' ' ,'( ',(aff_bus) ),'('),' ) ') AS shnames,contactrecord_id FROM contactrecord ORDER BY shnames ASC 我在括号中显示aff_总线列,但如果aff_总线列为空,我不需要括号。如果aff_-bus列为空,如何删除括号?使用用例检查aff_-bus是否为空 SELECT CASE WHEN a
SELECT CONCAT(ISNULL(CONCAT(full_name,' ' ,'( ',(aff_bus) ),'('),' ) ') AS shnames,contactrecord_id
FROM contactrecord
ORDER BY shnames ASC
我在括号中显示
aff_总线
列,但如果aff_总线
列为空,我不需要括号。如果aff_-bus
列为空,如何删除括号?使用用例检查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
利用使用NULL
进行“添加”返回NULL
:
SELECT ISNULL(full_name, '') + ISNULL(' ( ' + aff_bus + ' )', '') AS shnames, contactrecord_id
FROM contactrecord
ORDER BY shnames ASC
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 ;
谢谢,如果aff_总线列为空怎么办?那么,您仍然会得到空的brakets…尝试
NULLIF(aff_总线“”)
而不是aff_总线
。谢谢您,aff_总线列为空且不为空,因此我将其修改为:选择CASE WHEN aff_总线='',然后选择full_name ELSE CONCAT(full_name',(',aff_总线“”))结束为shnames,contactrecord\u id来自contactrecord,它工作得很好,再次感谢,我看到它说空白,但ISNULL欺骗了我,如果你愿意,你当然可以同时拥有“”和ISNULL的大小写