如何创建一个视图,其中列作为多个其他列的CSV?

时间:2016-12-18 03:31:35

标签: sql oracle csv

我的表格中包含 bar1 bar2 bar3 列。有没有办法可以使用 bar1 列, bar2 bar2 以及 bar3 来创建视图 bar 强>

此外,如果 bar2 为空或 bar3 为空,则我不需要无关的逗号。

bar1 bar2 bar3   bar
---- ---- ----   ---
bat  bats bass = bat,bats,bass
bim  bis       = bim,bis

2 个答案:

答案 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>