sql - 用“/”分隔的 SQL 连接两列中的值
问题描述
我需要将一列中的列与用破折号分隔的值连接起来。但只有当两列都有值时,情况并非总是如此。在这种情况下,我只想移动值并将其单独显示在结果列中。我怎样才能最好地做到这一点?
解决方案
你想要字符串连接。表达这一点的标准方法是:
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。
推荐阅读
- java - 如何在Android 中连续检查Internet 连接| 爪哇 | 安卓工作室
- java - 中间操作的顺序
- arduino - Arduino ide 未在范围问题中声明
- c++ - 如何在不同内核之间正确共享运行时创建的多态数据?嵌入式 C++
- vue.js - 如何将多行文本传递给 Vue.js 组件?
- java - 带有翻译动画的bounceinterpolator不会反弹按钮?
- flutter - 如何在flutter 2.0中对与另一个集合相关的firestore集合中的字段值求和
- excel - 用于隐藏行的慢速 VBA 循环
- javascript - 带有链接和 onSubmit 的 React Button 不会同时执行
- javascript - 如何在使用整数更新单元格后刷新我的表单集数据?