Oracle SQL中的动态枢轴

Oracle SQL中的动态枢轴

..枢轴(B(X)的和(A)

现在B是数据类型varchar2,X是由逗号分隔的varchar2值的字符串。
X的值是从同一表的列(例如CL)中选择的不同值。这种方式枢轴查询工作。

但问题是,每当列CL中出现新值时,我必须手动将其添加到字符串X中。

我尝试用从CL中选择的不同值替换X。但是查询没有运行。
我之所以感觉到这一点,是因为为了替换X,我们需要用逗号分隔值。
然后,我创建了一个函数来返回与字符串X匹配的精确输出,但是查询仍然没有运行。
所显示的错误信息有“丢失的右副词”、“文件的结束通信通道”等。
我尝试了PiptXML,而不仅仅是Pivot,查询会运行,但是会给出oraxxx等没有值的vlaue。

也许我没有好好利用它。
你能告诉我一些方法来创建一个具有动态值的枢轴吗?


宝慕林4294392
浏览 661回答 3
3回答

斯蒂芬大帝

不能将非常量字符串放入IN枢轴条款的条款。为此,您可以使用数据透视XML。从…文献资料:子查询仅与XML关键字一起使用。指定子查询时,子查询找到的所有值都用于旋转。它应该是这样的:select xmlserialize(content t.B_XML) from t_aapivot xml(sum(A) for B in(any)) t;您还可以拥有一个子查询,而不是ANY关键词:select xmlserialize(content t.B_XML) from t_aapivot xml(sum(A) for B in (select cl from t_bb)) t;这是一个sqlfiddle演示
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL
Oracle