tes*_*ter 2 mysql sql concatenation
假设我有一个包含这些列的表:
DATA1 | DATA2 | DATA3
Run Code Online (Sandbox Code Playgroud)
我想打印:DATA1 (DATA2)如果 DATA2 不为空,则仅DATA1当DATA2为空时。如果我用 concat 来做:
SELECT CONCAT(DATA1," (",COALESCE(DATA2,""),")")
Run Code Online (Sandbox Code Playgroud)
我的问题是“(”和“)”总是被打印,即使 DATA2 为空,所以我将得到结果:DATA1 ()而不是DATA1
有什么办法可以用 mysql 数据库上的 sql 来做到这一点吗?
到这里你已经得到了一半的答案。如果任何值为 null,CONCAT则将产生。NULL您正在使用COALESCE,因此您的整个结果不为空(如果DATA2是),因此只需在合并中包含“()”即可。
尝试这个
SELECT CONCAT(
DATA1,
COALESCE(
CONCAT(" (",DATA2,")")
,"")
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3805 次 |
| 最近记录: |