我正在试图找出如何将多个名称(如姓氏和首页名称(包括可能的前缀))连接为全名而不使用双倍间距仅在必要时使用短划线(当一个人有两个名字时)。
例如:
'A. van Dijk - Turner'
(注意破折号,'van de'是前缀)'A van Dijk'
。以下示例代码绝对不够:
concat (initals, ' ',prefixlastname,' ', lastname, ' - ', prefixmaidenname ', maidenname) AS 'full name'
如果某人只有一个婚前姓名,则上述代码会导致例如'A - van Dijk'。
最有效的解决方案是什么?非常感谢提前。
答案 0 :(得分:2)
尝试类似COALESCE(initals || ' ','')
的内容,即如果首字母不是空,则返回空格和空格。如果initials为NULL,则返回空字符串。
答案 1 :(得分:0)
使用如下:
SELECT REVERSE(SUBSTRING(REVERSE(ISNULL(FirstName + '-','') + ISNULL(LastName + '-','')),2,8000))
或另一个更简单的版本:
SELECT REVERSE(SUBSTRING(REVERSE(CONCAT(FirstName +'-', LastName + '-') ),2,8000))
以及您想要的其他任何列
答案 2 :(得分:0)
我的两分钱
COALESCE(姓氏前缀+''+姓氏+'-',姓氏+'-','')+ COALESCE(姓氏前缀+''+姓氏,姓氏,'')纳姆
Coalesce从左到右顺序查找第一个非NULL值。如果没有名称前缀,则评估下一个值。