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

SQL Server 2008 - ORDER BY句の非整数定数

    MSDN は次のとおりです。 ある意味で non-integer constant である文字定数について言わなければなりません

    1) 非整数定数は ... 整数ではない定数です。

    例:'string1' 文字列定数を表します

    0x01 varbinary 定数を表します

    {ts '2015-02-26 06:00:00'} 日時定数を表します

    1.23 数値定数を表します

    2) したがって、文字列定数 / 文字列定数を定義するためにシングル クォーテーションが使用されます しかし SQL Server では、単一引用符を列識別子の区切り記号として使用することもできます:

    SELECT ... expression AS 'Column1'
    FROM ...
    

    このコンテキストでは、'Column1' は明らかです。 は列識別子ですしかし ORDER BY で使用する場合:ORDER BY 'Column1' SQL Server はそれが文字列リテラル (文字列定数) を表しているのか、それとも列識別子/列名を表しているのかを認識できないため、混乱が生じます。

    3) SQL Server では ORDER BY で整数定数を使用できるため、SELECT ColA, ColB, ColC FROM ... ORDER BY 2 .この場合 2ColB のインデックスです .また、ColB でソートしたい場合は および ColC ORDER BY 2, 3 を使用できます .列のインデックスの使用は悪い習慣と見なされます。

    4) この場合、私は

    を使用します
    ORDER BY EMP_LAST_NAME + ', ' + EMP_FIRST_NAME
    



    1. PostgreSQL:JSON列から属性を削除します

    2. MyBatis Batch Insert / Update For Oracle

    3. Oracleで時間クエリを追加するにはどうすればよいですか?

    4. InnoDBテーブルを修復するにはどうすればよいですか?