【发布时间】:2022-06-10 23:24:58
【问题描述】:
我有一个表样本,其数据存储如下
Id | String
--------------
1 abc,def,ghi
2 jkl,mno,pqr
我需要这样的输出..
Id | processedrows
--------------
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr
我使用 XML 表在 SQL Server 中成功运行。
select a.Id,trim(COLUMN_VALUE)
FROM tableA a ,xmltable(('"'|| REPLACE(a.String, ',', '","')|| '"'))
如何在 netezza 中对选择查询执行相同操作?
【问题讨论】:
-
xmltable不是有效的内置 T-SQL 表值函数。如果它是用户定义的 TVF,那么我们不知道它是什么。虽然你为什么不使用STRING_SPLIT? -
另外,您引用了一个名为
a的对象,但在您的查询中没有别名为a的对象。此外,您将奇数 1980 年的CROSS JOIN用于表值函数xmltable,但是,因此您将无法在其参数中引用前一个表中的列;您需要我们APPLY才能做到这一点。 -
已经在这里提问和回答:stackoverflow.com/questions/52859424/…
-
虽然该问题的答案是 answer in another castle, @TimBiegeleisen ,但它并没有那么有用(尤其是如果链接失效)。
标签: sql-server netezza