麻烦在sql中使用COALESCE函数

Bse*_*erk 0 sql sql-server coalesce

我正在尝试执行以下操作:

SELECT forename, 
       forename2, 
       surname,
       (SELECT (COALESCE(LEFT(forename, 2)),"") + 
               (COALESCE(LEFT(forename2, 1)),"") + 
               (COALESCE(LEFT(surname, 1)), "") as Mnemonic)
from Persons
Run Code Online (Sandbox Code Playgroud)

试图获得前2个字母的forename,forename2的第一个字母(如果not null),以及姓氏的第一个字母(如果不是null),""空字符串,其中存在null.

任何帮助将非常感谢,问候,Bserk

Blo*_*ard 6

你的问题没有说明你当前的代码有什么问题,但是我猜你会收到一个错误,因为你使用的是双引号而不是单引号,并且你的括号不匹配.

您还可以通过删除内部选择来稍微简化此查询.

试试这个:

SELECT forename, forename2, surname, 
    COALESCE(LEFT(forename,  2),'') + 
    COALESCE(LEFT(forename2, 1),'') + 
    COALESCE(LEFT(surname,   1),'') as Mnemonic
from Persons
Run Code Online (Sandbox Code Playgroud)