Table a
a1 a2 a3
1 a aaaa
2 b aaaa
3 c aaaa
4 d aaaa
5 e aaaa
-------------
result
a1 a2 a3 a4 a5
a1 b c d e----
这个SQL怎么写啊?

解决方案 »

  1.   

    如果只是這幾條數據,直接這麼寫。Select
    Max(Case a1 When 1 Then a2 Else '' End) As a1,
    Max(Case a1 When 2 Then a2 Else '' End) As a2,
    Max(Case a1 When 3 Then a2 Else '' End) As a3,
    Max(Case a1 When 4 Then a2 Else '' End) As a4,
    Max(Case a1 When 5 Then a2 Else '' End) As a5
    From
    a但是我估計你的問題應該不會這麼簡單。 :)
      

  2.   

    declare @s varchar(8000)
    select @s = isnull(@s, '') + ', max(case a2 when ''' + a2 + ''' then a2 else null end) as [a' + ltrim(a1) + ']'
    from a
    select @s = 'select' + stuff(@s, 1, 1, '') + ' from a'exec(@s)
      

  3.   

    覺得echiynn(寶玥)的可能還不能解決問題。你的a3都是一樣的嗎?另外,a3對這個結果沒有影響。樓主最好能舉一個稍微複雜,能完整說明你的問題的例子。
      

  4.   

    如果沒a3什麼事, echiynn(寶玥) 的就可以。 :)