Luc*_*vin 17 sql database string null concatenation
Column1 Column2
------- -------
apple juice
water melon
banana
red berry
Run Code Online (Sandbox Code Playgroud)
我有一个有两列的表.Column1有一组单词,Column2也有一组单词.我想用+运算符连接它们而没有空格.
例如:applejuice
问题是,如果第二列中有空值,我只想将第一个元素作为结果.
例如:香蕉
Result
------
applejuice
watermelon
banana
redberry
Run Code Online (Sandbox Code Playgroud)
但是,当我使用column1 + column2时,如果Comunm2为NULL,则它给出NULL值.我希望结果是"香蕉".
Joe*_*lli 38
使用COALESCE函数将NULL值替换为空字符串.
SELECT Column1 + COALESCE(Column2, '') AS Result
FROM YourTable
Run Code Online (Sandbox Code Playgroud)
小智 6
我发布的一些带有 MSSQL 标签的帖子已被版主重命名为“SQL”。所以我假设你正在使用 MSSQL
COALESCE 将返回第一个非空值。
SELECT COALESCE('a', NULL, 'c')
Run Code Online (Sandbox Code Playgroud)
只会返回 'a'
如果您需要名字 + 姓氏(有时其中一个或另一个为 NULL),请使用 CONCAT。Concat 将字符串相加,并用 0 长度的非空值替换 NULL。
SELECT CONCAT('a', NULL, 'c')
Run Code Online (Sandbox Code Playgroud)
将返回“ac”
如果你想要 Fn 空间 + 中间名称空间 + LN,请将 concatenate 与 CONCAT 结合起来:
SELECT CONCAT('a' + ' ', NULL + ' ', 'c')
Run Code Online (Sandbox Code Playgroud)
将返回“a c”。
中间名 (null) 后面的空格用 + 和 NULL 消除。
NULL + ' ' 为空。
因此,在 Middlename 或 Firstname 为空的情况下,您不会得到额外不需要的空格。