sql - DB2 SQL 列到行
问题描述
我正在尝试将列转换为行,如下例所示。
_________________________________ ROW | Columns | values_
|Column1 | Column2 | Column3 _____________________________
_________________________________ 1 | 1 | 12
Row 1| 12 | 25 | 11 1 | 2 | 25
Row 2| 30 | 5 | 15 --> 1 | 3 | 11
2 | 1 | 30
2 | 2 | 5
2 | 3 | 15
为了解决这个问题,我使用了以下语句
with t as (
<my query which builds the cross tab>
)
select t.Row,
(case when n.n = 1 then Column1
when n.n = 2 then Column2
when n.n = 3 then Column3
end) as values_
from t cross join
(select 1 as n from sysibm.sysdummy1 union all
select 2 from sysibm.sysdummy1 union all
select 3 from sysibm.sysdummy1
) n;
但我收到以下错误
该语句不能由 DB2 或在加速器中执行(原因 7)。SQLCODE=-4742,SQLSTATE=560D5,驱动程序=4.19.56
有人有任何提示可以解决这个问题吗?谢谢
解决方案
加速器中的 SQLcode 4772 原因 7 表示“查询使用多种编码方案”。
检查此页面https://www.ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/codes/src/tpc/n4742.html。它建议:
“如果您需要有关为什么无法在加速器中执行该语句的更多信息,请发出 EXPLAIN 语句并检查表 DSN_QUERYINFO_TABLE 的输出。”
附加信息在此页面上,建议
确保查询引用的所有对象都具有相同的编码方案。
与您的 DBA 交谈,发现查询中涉及的对象的 CCSID,并相应地修改查询,例如使用相同编码的临时表。
推荐阅读
- php - PHP MySQL。添加表格内容不起作用
- android - subscribe() 中的代码没有被执行
- com - OleProcedure() C++ 生成器 10.3
- typescript - 如何使用 es2015 模块中提供的导入库运行 Jest 测试?(Jest 遇到了意外的令牌错误)
- c# - 在内存流中打开 PDF 时是否可以打印 PDF?
- c++ - 在 Windows 容器 servercore 中运行时不显示简单的 C++ exe std::cout
- npm - Javascript 任务处理但不使用新代码更新
- python - 如何根据列名过滤数据框的内容
- sql-server - kafka connect for jdbc sink for microsoft sql server。它适用于 record_value 的多个键,并且 record_key 弹出此错误
- javascript - 如何使用 ajax 将 gif 图像保存到 imgur api