1
我的表是這樣的:的Oracle 11g SQL合併兩行成一個(與條件)
CONTACT
ID
---
1
2
CONTACTINFO
ID | CONTACT_ID | CONTACTINFOTYPE_ID | INFO
-------------------------------------------------------------
1 | 1 | 1 | 'Herbert'
2 | 2 | 2 | 'Berg'
3 | 2 | 1 | 'Peter'
4 | 1 | 2 | 'Gruber'
5 | 1 | 3 | '303-020-303'
CONTACTINFOTYPE
ID | NAME
---------------
1 | 'firstname'
2 | 'lastname'
3 | 'phonenumber'
這應該是SQL代碼的我嘗試創建結果:
id | full name
---------------------
1 | Herbert Gruber
2 | Peter Berg
我當前的SQL代碼如下所示
SELECT c.id AS id,
case when cIT.name='firstname' then cI.info end
||' '||
case when cIT.name='lastname' then cI.info end AS fullname
FROM Contact c
JOIN ContactInfo cI ON cI.Contact_Id=c.id
JOIN ContactInfoType cIT ON cI.ContactInfoType_id=cIT.id;
這樣做的結果是:
id | full name
---------------------
1 | Herbert
2 | Berg
2 | Peter
1 | Gruber
我已經嘗試了一些其他的方法,但他們似乎也沒有工作。