我使用的是SQL Server 2012中,我有如下表:如何結合不同的標誌列插入單列
ID1 Team HasGender HasAge HasHeight
1 Blue 1 (NULL) 1
2 Blue 1 1 (NULL)
...我想從放映創建一個單行:
ID1 Team HasGender HasAge HasHeight
1 Blue 1 1 1
我不太在意哪一行帶來,我只需要把所有的標誌放在一行中。
我試過IsNULL,使用Group by Max(沒有工作,因爲標誌字段是位類型),然後我嘗試了以下使用COALESCE和自聯接,但它仍然不工作;它帶回行的倍數,以及標誌仍然沒有填寫,因爲我想他們:
SELECT t1.ID, t1.Team,
Gender=COALESCE(t1.HasGender, t2.HasGender),
Age=COALESCE(t1.HasAge, t2.HasAge),
Height=COALESCE(t1.HasHeight, t2.HasHeight)
FROM Table t1 INNER JOIN Table t2
ON t1.Team = t2.Team
我應該注意到這個表有3個或4行這樣的標誌,所以當我加入我似乎得到倍數回來。
由於提前,
維羅尼卡
只是爲了確保,你的標誌是可空位,這意味着你可以有0,1和* NULL *的價值?如果是這樣,當有3行的值爲'1','0'和'null'時會發生什麼? –
它們確實是可空的位,但全是1或NULL,表中沒有0(幸好它不是一個很大的行,只有幾百行)。 – Veronica
DIdi你找到任何有效的解決方案? – Simone