sql >> データベース >  >> RDS >> Sqlserver

SQL でピボットを使用して一部の列を行に転置する

    クエリにいくつか問題があります。

    まず、PIVOT に集計関数がありません。 propertyvalue の周りに集計が必要です .

    次に、$row1 を囲む必要があります。 などは一重引用符ではなく角括弧で囲みます。

    3 番目に、as pivot に別のエイリアスを使用します。

    その結果、コードは次のようになります:

    select * 
    from 
    (
      select name, propertyvalue, displayname
      from indexrows
    ) a
    pivot
    (
      max(propertyvalue)
      for [displayname] in ([$row1], [$row2], [$row3])
    ) piv;
    

    デモによる SQL Fiddle を参照してください。



    1. mysqlにmp3ファイルを保存する

    2. MySql Add Index:影響を受ける0行

    3. mysql / php:投稿を表示し、投稿ごとにすべてのコメント

    4. mysql_real_escape_string()を回避するSQLインジェクション