0
我的表格中有如下數據。標誌位和標籤是varchar。如何在sql中的兩列上使用Pivot
parentid code label flag
1 abc hello false
1 xyz bye false
1 qrt hi true
我需要爲
parentid label_abc flag_abc label_xyz flag_xyz label_qrt flag_qrt
我只能取唯一的標籤,現在使用透視獲取的記錄,但是當我給第二聚集的功能標誌提示錯誤(附近有語法錯誤, 」)。有什麼方法可以使用Pivot來獲取兩列。
我做了這樣的事情:
SELECT distinct
parentid
, [abc] as label_abc
, [xyz] as label_xyz
, [qrt] as label_qrt
FROM (
Select
parentid,
label,code
FROM items
) a
Pivot (
Max(label), max (flag)
FOR code in ([abc], [xyz], [qrt]
) as Pvt
嗨,Will對不起,我認爲你沒有看到我的編輯。國旗是一點。 – Agga
這幾乎是正確的,但有一些錯誤。正確的版本應該是這樣的:http://www.sqlfiddle.com/#!3/47cba/1 – jpw
啊,我的壞。無論如何,它仍然會工作,如果做了明確的轉換(如'max(convert(int,flag))'),儘管你需要將它轉換回外部選擇。或者我想你可能能夠做一些位數學代替max(旗),但我從來沒有嘗試過.. –