2012-01-06 30 views
20

Số definition of the PIVOT clause của Oracle chỉ định rằng có khả năng xác định truy vấn con trong mệnh đề IN. Một ví dụ hư cấu về những gì tôi sẽ tưởng tượng đây là:Ví dụ về mệnh đề Oracle PIVOT với truy vấn phụ

... PIVOT (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies)) 

Tuy nhiên, tôi gặp lỗi ORA-00936: Missing expression. Thật không may, các lỗi từ mệnh đề PIVOT mới này thường khá khó hiểu. Bất cứ ai có thể cho tôi một ví dụ tốt về cách truy vấn con có thể được sử dụng trong mệnh đề IN của mệnh đề PIVOT không?

+1

Cảm ơn đã khám phá. Tôi đã từ bỏ rất lâu trước khi tôi đọc một nửa tài liệu đó. – tumchaaditya

Trả lời

20

Rõ ràng, tôi đã quá lười biếng để đọc đến cuối tài liệu ... Hơn nữa xuống, các tài liệu khẳng định:

subquery Một subquery chỉ được sử dụng kết hợp với các từ khóa XML. Khi bạn chỉ định truy vấn con, tất cả các giá trị được tìm thấy bởi truy vấn phụ được sử dụng để xoay vòng. [...]

này sẽ làm việc

PIVOT XML (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies)) 

Xem toàn bộ tài liệu hướng dẫn

http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm#CHDFAFIE

+3

Vì vậy, tôi thấy rằng điều này trả về đầu ra ở định dạng XML. Bất kỳ ý tưởng làm thế nào để có được sản lượng bình thường (bảng) như đồng bằng PIVOT sẽ cung cấp cho? – tumchaaditya

+0

@tumchaaditya: Tôi không chắc liệu điều đó có thể xảy ra hay không. Nhưng để chắc chắn, hãy hỏi một câu hỏi Stack Overflow mới. Và liên kết đến nó từ đây, tôi tò mò, bản thân mình ... –

+1

Tôi đã kết thúc việc xây dựng các kết quả của động lực truy vấn phụ đó bên ngoài SQL với trục xoay. Ý tôi là tôi chạy truy vấn phụ một cách riêng biệt và đường dẫn đầu ra cho truy vấn chính – tumchaaditya

Các vấn đề liên quan