【发布时间】:2020-10-02 13:52:04
【问题描述】:
我一直在尝试使用pivot 从表格中获取特定视图的代码。
create table temp
(
date datetime,
category varchar(3),
amount money
)
insert into temp values ('1/1/2012', 'ABC', 1000.00)
insert into temp values ('2/1/2012', 'DEF', 500.00)
insert into temp values ('2/1/2012', 'GHI', 800.00)
insert into temp values ('2/10/2012', 'DEF', 700.00)
insert into temp values ('3/1/2012', 'ABC', 1100.00)
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category)
FROM temp c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT date, ' + @cols + ' from
(
select date
, amount
, category
from temp
) x
pivot
(
max(amount)
for category in (' + @cols + ')
) p '
execute(@query)
drop table temp
declare 语句中出现错误,并且pivot 未被 dbviz SQL 指挥官识别为关键字
我什至删除了@并尝试运行它,但我无法成功执行
我正在使用 Oracle Database 11g(oracle JDBC 驱动程序)
【问题讨论】:
-
这绝对不是 oracle 语法。你能告诉我们你将这个 tsql 转换为 plsql 的努力吗?
-
您使用的是哪个版本的 Oracle?
-
与其尝试将 T-SQL 代码转换为 Oracle 代码,不如在给定一组示例数据的情况下显示预期的输出,这会容易得多。
-
我使用的是 Oracle db,但我们使用 SQL 编写查询。
pivot不被视为关键字。我不明白为什么