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

Oracle ORDER BYではアンパサンド(&)文字は無視されます

    これは言語ソートの効果です:

    SQL> alter session set nls_sort=binary;
    
    Session altered.
    
    SQL> get afiedt.buf
      1  select * from (
      2  select '&' txt from dual
      3  union
      4  select '&'||'Z' txt from dual
      5  union
      6  select '&'||'A' txt from dual
      7  union
      8  select 'P' txt from dual
      9  union
     10  select 'N' txt from dual
     11  )
     12* order by txt
    SQL> /
    
    TX
    --
    &
    &A
    &Z
    N
    P
    
    SQL> alter session set nls_sort = 'Dutch';
    
    Session altered.
    
    SQL> get afiedt.buf
      1  select * from (
      2  select '&' txt from dual
      3  union
      4  select '&'||'Z' txt from dual
      5  union
      6  select '&'||'A' txt from dual
      7  union
      8  select 'P' txt from dual
      9  union
     10  select 'N' txt from dual
     11  )
     12* order by txt
    SQL> /
    
    TX
    --
    &
    &A
    N
    P
    &Z
    

    並べ替える言語に違いはあります。一部の文字は、言語によって値が異なります。バイナリでは、ASCII値を使用して並べ替えます。



    1. SQL Serverで「datetime」を「datetimeoffset」に変換します(T-SQLの例)

    2. Laravelのフィールドのどこで注文するか

    3. なぜORA-01722(無効な番号)を取得するのですか?

    4. MySQLで先頭と末尾の空白を削除する方法