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

ストアード・プロシージャーのパラメーターとしての DESC および ASC

    行番号はすべての行で評価されるわけではありませんが、case ステートメントは評価されるため、どのような場合でも rownum に固執します。

    代わりにこれを試してください:

                ROW_NUMBER() OVER (
                    ORDER BY                    
                        CASE WHEN @orderby = 0 AND @orderdir = 1 THEN ne.[time] END DESC,    
                        CASE WHEN @orderby = 0 AND @orderdir = 2 THEN ne.[time] END ASC,    
                        CASE WHEN @orderby = 1 AND @orderdir = 1 THEN ne.lastedit END DESC,
                        CASE WHEN @orderby = 1 AND @orderdir = 2 THEN ne.lastedit END ASC,
                        CASE WHEN @orderby = 2 AND @orderdir = 1 THEN ne.title END ASC
                        CASE WHEN @orderby = 2 AND @orderdir = 2 THEN ne.title END DESC
                    )
      

    1. 整合性制約違反:1062キー「PRIMARY」のエントリ「1」が重複しています

    2. PostgreSQL論理レプリケーションを最適化する方法

    3. MapReduceがHadoopでどのように機能するか

    4. SQLの結合から重複する列を削除する方法