我正在尝试创建一个查询,以使用PIVOT函数将行转置为列。
这是contact
我要转置为行的表:
PARTYID CONTACTTEXT CONTACTTYPECD
---------- ------------ -------------
100 0354441010 1
100 0355551010 2
100 0428105789 3
100 abc@home.com 4
我的预期结果:
PARTYID PHONE FAX MOBILE EMAIL
---------- ------------ ------------ ------------ ------------
100 0354441010 0355551010 0428105789 abc@home.com
我的查询:
SELECT * FROM
(
SELECT partyId, contacttext, contacttypecd
FROM CONTACT
WHERE partyId = 100;
)
PIVOT (
MAX(contacttext)
FOR contacttypecd in (1 Phone, 2 Fax, 3 Mobile, 4 Email));
我遇到的错误:
Error starting at line 9 in command:
FOR contacttypecd in (1 Phone, 2 Fax, 3 Mobile, 4 Email))
Error report:
Unknown Command
我出现问题的原因是因为我的Oracle数据库版本(Oracle9i)不支持PIVOT功能。以下是以另一种方式进行操作的方法:
SELECT PartyCD
,MAX(DECODE(t.contacttypecd, 1, t.contacttext)) Phone
,MAX(DECODE(t.contacttypecd, 2, t.contacttext)) Fax
,MAX(DECODE(t.contacttypecd, 3, t.contacttext)) Mobile
,MAX(DECODE(t.contacttypecd, 4, t.contacttext)) Email
FROM
(
SELECT partyid, contacttext, contacttypecd
FROM CONTACT
WHERE partyid = 100
) t
GROUP BY PartyID
在以下情况中,您的陈述中有一个冒号的分号:
WHERE partyId = 100;
将其删除以使其成为:
SELECT * FROM
(
SELECT partyId, contacttext, contacttypecd
FROM CONTACT
WHERE partyId = 100
)
PIVOT (
MAX(contacttext)
FOR contacttypecd in (1 Phone, 2 Fax, 3 Mobile, 4 Email));
PARTYID PHONE FAX MOBILE EMAIL
---------- ------------ ------------ ------------ ------------
100 0354441010 0355551010 0428105789 abc@home.com
它被视为多个语句;第一个是不完整的,因为它缺少右括号(因此得到ORA-00907),第二个从该括号开始并得到了您报告的错误,然后每行都得到相同的错误。您似乎只是在查看上一次报告的错误-
从第一个错误开始,将其清除,然后继续存在下一个错误,通常会更有帮助。
我已经读过关于MS透视表的东西,但我仍然有问题得到正确的这一点。 我有一个正在创建的临时表,我们会说第1列是一个商店号,第2列是一个星期号,最后第3列是某种类型的总数。而且周数是动态的,商店数是静态的。 我希望它作为一个透视表出来,像这样: 商店的数字下侧和周横跨顶部。
问题内容: 编辑: 是否使用不在此问题的范围内。考虑使用PDO。 需要采取什么步骤将脚本从使用不赞成使用的功能转换为? 使用代替时,是否需要采取其他不同的措施? 这是使用函数的基本脚本: 问题答案: 注意: 从转换到可能不是最佳的。如果您准备将所有代码转换为OOP,请考虑使用 PDO 。 这是很有诱惑力的尝试更换的所有实例与祈祷它的工作原理。您会很亲密,但不是很准。 连接到数据库: 幸运的是,该方
问题内容: 我正在尝试将表的某些列转置为行。我正在使用Python和Spark 1.5.0。这是我的初始表: 我想要这样的东西: 有人知道我能做到吗?感谢您的帮助。 问题答案: 使用基本的Spark SQL函数相对简单。 蟒蛇 Scala :
问题内容: 这是我当前的mysql表的样子: 现在,我想返回基于星期几进行分组的结果集,如下所示: 这是我当前的查询。但它只返回每天的第一打。 有人可以帮我弄这个吗?谢谢迈克 问题答案: SQLFiddle演示 输出值
问题内容: 我正在尝试将表的某些列转置为行。我正在使用Python和Spark 1.5.0。这是我的初始表: 我想要这样的东西: 有人知道我能做到吗?谢谢你的帮助。 问题答案: 使用基本的Spark SQL函数相对简单。 python Scala:
本文向大家介绍如何使用COALESCE()函数将MySQL null转换为0?,包括了如何使用COALESCE()函数将MySQL null转换为0?的使用技巧和注意事项,需要的朋友参考一下 您可以使用该函数将MySQL null转换为0 让我们首先创建一个表。创建表的查询如下 使用insert命令在表中插入一些记录。 查询如下 使用select语句显示表中的所有记录。 查询如下 以下是输出 这是