sql - SQL Server 中与 Null 的连接

标签 sql t-sql concatenation

下面有一个简单的代码。

Select columnA, columnB, columnC
  From table.

这是我的结果。

ColumnA  ColumnB  ColumnC
Apple    G        null
Juice    S        T9

Now, I use the concatenation as follow

Select 
  ColumnA + '_'+ ColumnB + '_' + ISNULL(ColumnC, '') as Name
  From table

我的输出如下

Name
Apple_G_
Juice_S_T9

如何修改上面的串联,使其显示为 Apple_G 而不是 Apple_G_ 基本上,我的结果中有一个额外的_。

最佳答案

在应用 IsNull 函数之前,只需将下划线与可为空的列连接起来即可。

Select 
  ColumnA + '_'+ ColumnB + ISNULL('_' + ColumnC, '') as Name
  From table

这需要 CONCAT_NULL_YIELDS_NULL选项设置为 ON。 - 这是默认的,也是 Microsoft 强烈推荐的。

关于sql - SQL Server 中与 Null 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37165294/

相关文章:

sql - 运行 Liquibase 时出现 ArrayIndexOutOfBoundsException

mysql - 根据主键插入或更新

sql - 如何使用 sql server 在特定列上获得不同的插入顺序?

T-SQL:创建获取路径文件夹并插入文件路径的存储过程

sql-server - 删除触发器时出错

mysql - 我可以将多个 MySQL 行连接到一个字段中吗?

mysql - 连接多个列然后拆分它们 - MySQL

php - 无论 codeigniter 中的排序如何,我都希望在顶部有一组特定的记录

mysql - 获取相关表mysql中的记录数

mysql - 如何使用 if 语句从同一个表中选择和连接值