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

Oracleピボットの列

    レコードを並べ替えるには、SQLの最後に以下を追加します

    ORDER BY TO_DATE('01/'||month||'/'||year,'dd/mm/yyyy') 
    

    注:ピボット列の名前では大文字と小文字が区別されるため、引用符で囲む必要があります

    必要な列のみを選択した完全なクエリは次のとおりです。

     SELECT mnth_txt,"Omsk_CNT","Omsk_SM","Novosibirsk_CNT",
            "Novosibirsk_SM","Orenburg_CNT","Orenburg_SM" 
     FROM
     (
     SELECT *
     FROM (     
      SELECT 1 cnt, 2 sm, '55' name, 12 month, 2011 year, '12 2011' mnth_txt FROM DUAL UNION ALL     
      SELECT 1 cnt, 2 sm, '54' name, 11 month, 2011 year, '11 2011' mnth_txt FROM DUAL UNION ALL    
      SELECT 1 cnt, 2 sm, '55' name, 11 month, 2011 year, '11 2011' mnth_txt FROM DUAL UNION ALL     
      SELECT 1 cnt, 2 sm, '54' name, 12 month, 2011 year, '12 2011' mnth_txt FROM DUAL UNION ALL     
      SELECT 1 cnt, 2 sm, '55' name, 12 month, 2011 year, '12 2011' mnth_txt FROM DUAL UNION ALL     
      SELECT 1 cnt, 2 sm, '56' name, 12 month, 2010 year, '12 2010' mnth_txt FROM DUAL   ) 
      PIVOT ( SUM(cnt) cnt, SUM(sm) sm     
              FOR NAME IN             
              ( '55' AS "Omsk",'54' AS "Novosibirsk", '56' AS "Orenburg" ) 
            )
      ORDER BY TO_DATE('01/'||month||'/'||year,'dd/mm/yyyy')         
     )
    



    1. IDをnullにすることはできません(自動インクリメント)

    2. 2つの列のいずれかで競合が発生した場合にPostgresでアップサートするにはどうすればよいですか?

    3. MySQLテーブルの最大行数を設定するにはどうすればよいですか?

    4. SQL ServerでNULLを別の値に置き換える方法– ISNULL()