首页 > 解决方案 > 用“/”分隔的 SQL 连接两列中的值

问题描述

我需要将一列中的列与用破折号分隔的值连接起来。但只有当两列都有值时,情况并非总是如此。在这种情况下,我只想移动值并将其单独显示在结果列中。我怎样才能最好地做到这一点?

在此处输入图像描述

标签: sqljoin

解决方案


你想要字符串连接。表达这一点的标准方法是:

select col1, col2,
    case 
        when col1 is not null and col2 is not null then col1 || '/' || col2
        else coalesce(col1, col2)
    end as result
from mytable

||是字符串连接的标准运算符 - 语法可能因数据库而异(但始终存在等效的运算符或函数)。

一些数据库实现concat_ws(),而在一些数据库中它确实忽略了null值,这使您可以将整个case表达式简化为:

concat_ws('/', col1, col2) as result

支持这种语法的数据库的一个例子是 MySQL。


推荐阅读