我的表格中包含 bar1 , bar2 , bar3 列。有没有办法可以使用 bar1 列, bar2 , bar2 以及 bar3 来创建视图 bar 强>
此外,如果 bar2 为空或 bar3 为空,则我不需要无关的逗号。
bar1 bar2 bar3 bar
---- ---- ---- ---
bat bats bass = bat,bats,bass
bim bis = bim,bis
答案 0 :(得分:3)
使用case
表达式执行此操作的一种方法。
select trim(trailing ',' from
case when bar1 is not null then bar1||',' end ||
case when bar2 is not null then bar2||',' end ||
case when bar3 is not null then bar3 end) bar
from t
<强> Sample Demo
强>
答案 1 :(得分:2)
有些数据库支持一个名为select trim(both ',' from replace(bar1 || ',' || bar2 || ',' || bar3, ',,', ',')) as bar
from . . .
的函数,它正是这样做的。
在Oracle中,对于三列很容易:
<iframe src="https://mywebsite.com/index.php#/embed/object?id=34"></iframe>