NLSSORT

指定された文字列に対してソート・キー値を戻します。

SQL構文

NLSSORT (String [,'NLS_SORT = SortName'])

パラメータ

NLSSORTには、次のパラメータがあります。

パラメータ 説明

String

Stringを指定すると、NLSSORTによって、Stringをソートするために使用されるソート・キー値が戻されます。Stringに対してサポートされるデータ型は、CHARVARCHAR2NCHARNVARCHAR2CLOBおよびNCLOBです。

['NLS_SORT = SortName']

SortNameは、言語ソート順序またはBINARYのどちらかです。このパラメータを省略すると、現在のセッションのデフォルトのソート順序が使用されます。SortNameには、アクセントを区別しないソートのための接尾辞-ai、または大/小文字を区別しないソートのための接尾辞-ciを追加します。

説明

  • 戻されるソート・キー値のデータ型はVARBINARY型になります。

  • 言語比較用に言語索引を作成できます。

次の例は、文字列のバイナリ値ではなく、言語ソート順序に基づいたソートおよび比較の処理を示しています。また、この例は、ALTER SESSION... SET NLS_SORT文を使用することによって同じ結果が得られることも示しています。

Command> CREATE TABLE nsortdemo (name VARCHAR2 (15));
Command> INSERT INTO nsortdemo VALUES ('Gaardiner');
1 row inserted.
Command> INSERT INTO nsortdemo VALUES ('Gaberd');
1 row inserted.
Command> INSERT INTO nsortdemo VALUES ('Gaasten');
1 row inserted.
Command> -- Perform Sort
Command> SELECT * FROM nsortdemo ORDER BY name;
< Gaardiner >
< Gaasten >
< Gaberd >
3 rows found.
Command> -- Use function to perform sort
Command> SELECT * FROM nsortdemo ORDER BY NLSSORT (name, 'NLS_SORT = XDanish');
< Gaberd >
< Gaardiner >
< Gaasten >
3 rows found.
Command> --comparison operation
Command> SELECT * FROM nsortdemo where Name > 'Gaberd';
< Gardiner >
1 row found.
Command> -- Use function in comparison operation
Command> SELECT * FROM nsortdemo WHERE NLSSORT (name, 'NLS_SORT = XDanish') >
           NLSSORT ('Gaberd', 'NLS_SORT = XDanish');
< Gaardiner >
< Gaasten >
2 rows found.
Command> -- Use ALTER SESSION to obtain the same results
Command> ALTER SESSION SET NLS_SORT = 'XDanish';
Session altered.
Command> SELECT * FROM nsortdemo ORDER BY name;
< Gaberd >
< Gaardiner >
< Gaasten >
3 rows found.
Command> SELECT * FROM nsortdemo WHERE name > 'Gaberd';
< Gaardiner >
< Gaasten >
2 rows found.

次の例では、言語索引を作成します。

Command> CREATE INDEX danishindex 
         ON nsortdemo (NLSSORT (name, 'NLS_SORT =XDanish'));
Command> INDEXES N%;
Indexes on table USER1.NSORTDEMO:
  DANISHINDEX: non-unique range index on columns:
    NLSSORT(NAME,'NLS_SORT = XDanish')
  1 index found.
1 index found on 1 table.