sql - SQL 连接 - 忽略空值 - 结果不应包含空格
问题描述
我希望将四列连接成一个计算列。四列中的任何一列都可以有空值。生成的计算列应该没有空格 - 只是四个字段的组合。
我已经尝试了大约十几个选项,包括 coalesce、IFNULL 等。下面是我尝试过的一些代码的示例。
(CONCAT([Column1],[Column2],[Column3],[Column4]))
CONCAT((ISNULL, Column1, ''), (ISNULL, Column2, ''), (ISNULL, Column3, ''), (ISNULL, Column4, ''))
ISNULL(Column1, '') + ISNULL(Column2, '') + ISNULL(Column3, '')+ ISNULL(Column4, '')
CONCAT(((isnull([Column1],''), isnull([Column2],'')), isnull([Column3],'')), isnull([Column4],''))
CONCAT(COALESCE (Column1, N'') , COALESCE (Column2, N'') , COALESCE (Column3, N'') , COALESCE (Column4, N''))
这是一个数据样本和我想要的结果:
第 1 列 | 第 2 列 | 第 2 列 | 第 2 列 | 结果 |
---|---|---|---|---|
XYZ | 5 | 乙 | C | XYZ5Bc |
啊 | 9 | 一个 | UGH9a | |
8 | G | C | 8GC | |
IJH | ķ | b | IJHKb | |
KUJ | 6 | 是的 | KUJ6Y |
解决方案
如今,许多数据库都支持非常方便的concat_ws()
功能。有了它,您只需使用:
select concat_ws('', column1, column2, column3, column4)
如果值的开头或结尾有空格,您可以使用trim()
:
select concat_ws('', trim(column1), trim(column2), trim(column3), trim(column4))
如果您的数据库不支持concat_ws()
,则有解决方法。但是,具体的解决方法取决于您使用的数据库。
推荐阅读
- python - pythonic异步事件系统的设计考虑
- python - 未应用日志记录级别
- jquery - 未捕获的类型错误:$(...)[0].css 不是 jQuery 中的函数
- docker - 如何访问 Synology NAS 上的 docker 卷
- pointers - 指向 Common Lisp 中的外部字符串的指针
- c - 关于MIT 6.828(2018)操作系统工程课程中的细粒度锁定实现
- node.js - NPM 本地包安装
- android - Epson Epos 打印机语言支持
- kubernetes - K8S Audit Sink - 它是否处理重试?
- java - Java 8 将 Int 与空值进行比较