我有一個名爲Employee
帶有字段ID,鍵,值表。該表如下...如何寫一個SQL查詢來選擇單個表的多個行
ID | Key | Value
1 | Fname | a
1 | Lname | aa
2 | Fname | b
2 | Lname | bb
我想下面的輸出...
1 | a | aa
2 | b | bb
請告訴我查詢產生這樣的輸出...
我有一個名爲Employee
帶有字段ID,鍵,值表。該表如下...如何寫一個SQL查詢來選擇單個表的多個行
ID | Key | Value
1 | Fname | a
1 | Lname | aa
2 | Fname | b
2 | Lname | bb
我想下面的輸出...
1 | a | aa
2 | b | bb
請告訴我查詢產生這樣的輸出...
您可以使用case and aggregate to achieve that:
select `ID`,
max(case when `Key` = 'Fname' then `Value` end) fname,
max(case when `Key` = 'Lname' then `Value` end) lname
from Employee
group by `ID`;
PS - 避免在您的設計中使用(MySQL)保留的關鍵字,如key
等。
參考:
謝謝我只是改變了名爲鍵的列和查詢工作正常..謝謝guyz幫助... – Dravis
如果您想選擇所有多行則
SELECT*FROM ROW_NAME;
如果你想選擇特別然後
SELECT NAME,NAME,NAME,FROM ROW_NAME
此處NAME是用於選擇你想要的。
這不是什麼問題。 –
另外,在真實世界中,除非實際使用表中的所有行,否則幾乎不應該使用'Select *',因爲這是性能問題,導致您沒有使用數據。 – user2366842
先試一下;問題太寬 –
btw,'key'是一個MySQL保留字;想你想知道事先https://dev.mysql.com/doc/refman/5.5/en/keywords.html –
@弗雷德-II-另一個數據透視表的問題,聯繫適當的重複它 – Shadow