我有以下 SQL 查询
select s.comments + s.further_comments from dbo.samples s where id = 1234
但是,如果 s.comments 或 s.further_comments 为 NULL,则整个字符串将返回 NULL
如何将 NULL 值转换为空字符串或至少仅返回该字符串中的非 NULL 值?
您可以使用ISNULL or COALESCE为了这。
SELECT ISNULL(s.comments, '') + ISNULL(s.further_comments, '')
SELECT COALESCE(s.comments, '') + COALESCE(s.further_comments, '')
ISNULL
Replaces NULL with the specified replacement value.
COALESCE
Returns the first nonnull expression among its arguments.
请注意,有are 一些差异两种方法之间存在差异,但出于所有意图和目的,它们很可能不适用于您的情况。
- ISNULL(NULL, NULL) -- 是 int
- COALESCE(NULL, NULL) -- 将抛出错误
- COALESCE(CAST(NULL as int), NULL) -- 它有效并返回 int
- ISNULL 仅采用 2 个参数,而 COALESCE 则采用可变数量的参数
- COALESCE 基于 ANSI SQL 标准,而 ISNULL 是专有的 TSQL 函数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)