Sql 附加“;尾部”;选择多个选项
我有多个具有以下结构的结果行Sql 附加“;尾部”;选择多个选项,sql,oracle,Sql,Oracle,我有多个具有以下结构的结果行 select data0, data1, ..., data30 from t0 union all select data0, ..., data30 from t1 ... 有多个结果行,其中许多需要 要对齐到30的长度。所以我要做以下的事情 union all select data0, data1, null, null, ..., null 有没有一种方便的方法来自动完成这类工作 任务我想要的是根据需要附加尾部null 我现在做什么 with
select data0, data1, ..., data30 from t0
union all select data0, ..., data30 from t1
...
有多个结果行,其中许多需要
要对齐到30的长度。所以我要做以下的事情
union all select data0, data1, null, null, ..., null
有没有一种方便的方法来自动完成这类工作
任务我想要的是根据需要附加尾部null
我现在做什么
with nulls as (
select null as nul0, ..., null as nul30 from dual
)
我被困在这一点上。如何将此空值附加到
结果行?已知空列数
请酌情编辑,我从手机输入
如何将此空值附加到结果行
没有用于生成任意数量列的投影的内置解决方案
这个解决方案需要相当多的输入,但是您可以通过使用支持regex搜索“n”替换模式的文本编辑器来半自动化它
with nulls as (
select cast(null as varchar2(10)) as nul0
, ...
, cast(null as varchar2(10)) as nul30
from dual
)
select t1.dat01
, t1.dat02
, nulls.nul03 as dat03
, nulls.nul04 as dat04
...
, nulls.nul30 as dat30
from t1
cross join nulls
union all
select t2.dat01
, t2.dat02
, t2.dat03
, nulls.nul04 as dat04
...
, nulls.nul30 as dat30
from t2
cross join nulls
你的dbms名称是什么?做交叉连接(而不是合并)Oracle是dbms名称我应该澄清一个问题
选择0,1,2,3,4,5
好吧,我打错了我的问题,以为有人会理解我匆忙打出来的想法。关键是,我需要附加一个结果以与一定数量的列对齐。在其他情况下,交叉连接会有一定的作用,但我的结果行具有不同数量的空值,我附加了空值。第二,我认为它应该使用交叉连接方式,但我仍然必须键入那些带有大量空值的CTE。这可能是一个解决方案。据我所知,作为新手,使用这种语法不会因为交叉连接而产生多行。不过还是有很多打字。我得检查一下语法,这对我来说是新的。谢谢你的回复,我得检查一下。过段时间会回来的。