解釋我的問題與示例查詢訂單在UNNEST
select p1.zonename,p1.beatname,p1.groupname,p2.partyname,p2.amount,
p2.groupofcompany from
party1 p1 inner join party2 p2 on p1.txno=p2.txno
此類似這樣的查詢顯示結果
ZoneName BeatName GroupName PartyName Amount Groupofcompany
AA BB CC A 100 Y
AA BB CC B 200 Y
DD EE FF C 300 N
但我想這樣
AA --> Zone Name
BB --> Beat Name
CC --> Group Name (if groupofcompany y then only show other wise not)
A 100 --> Party Name And Amount
B 200
DD
EE
C 300
顯示於是,我試着像這樣
SELECT unnest(array[zonename,beatname,groupname,partyname]) AS partyname,
unnest(array[0,0,0,amount]) AS Amount,
unnest(array[1,2,3,4]) AS
ORDER,
row_number() over()
FROM
(SELECT p1.zonename,
p1.beatname,
CASE
WHEN p2.groupofcompany='N' THEN ''
ELSE p1.groupname
END AS groupname,
p2.partyname,
p2.amount,
FROM party1 p1
INNER JOIN party2 p2 ON p1.txno=p2.txno) AS tt
ORDER BY row_number() over(),ORDER
它的顯示輸出這樣
Party Name Amount Order Row_number
AA 1 1
BB 2 1
CC 3 1
A 100 4 1
AA 1 2
BB 2 2
CC 3 2
B 200 4 2
DD 1 3
EE 2 3
3 3
C 300 4 3
但我想這樣
Party Name Amount
AA
BB
CC
A 100
B 200
DD
EE
C 300
如何刪除重複的和正確的順序(區域名稱,beatname,組名,partyname)
上午使用Postgresql 9.3
你能提供DDL和Sample Data嗎? – 2014-12-05 08:14:41
謹防在選擇列表中使用unnest:http://www.mesoconcepts.com/2013/06/inconsistent-unnesting-in-postgresql/ – 2014-12-05 11:41:17
@Denis。感謝doc。先生。 – Sathish 2014-12-05 12:05:25