为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle SQL中的动态枢轴

Oracle SQL中的动态枢轴

宝慕林4294392 2019-06-19 16:37:31
Oracle SQL中的动态枢轴..枢轴(B(X)的和(A)现在B是数据类型varchar2,X是由逗号分隔的varchar2值的字符串。X的值是从同一表的列(例如CL)中选择的不同值。这种方式枢轴查询工作。但问题是,每当列CL中出现新值时,我必须手动将其添加到字符串X中。我尝试用从CL中选择的不同值替换X。但是查询没有运行。我之所以感觉到这一点,是因为为了替换X,我们需要用逗号分隔值。然后,我创建了一个函数来返回与字符串X匹配的精确输出,但是查询仍然没有运行。所显示的错误信息有“丢失的右副词”、“文件的结束通信通道”等。我尝试了PiptXML,而不仅仅是Pivot,查询会运行,但是会给出oraxxx等没有值的vlaue。也许我没有好好利用它。你能告诉我一些方法来创建一个具有动态值的枢轴吗?
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

不能将非常量字符串放入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演示


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 630 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信