例: CASESPECIFIC句
次のクエリーは、英大文字/英小文字の区別のある比較でリテラル「Leidner P」に一致するデータが見つかった場合にだけ、結果を返します。
SELECT Name FROM Employee WHERE Name(CS) = 'Leidner P' ;
リテラル「Leidner P」のデフォルトは現在のモードに応じてCSまたはNOT CSですが、比較のタイプ修飾子がCSなので、セッション モードとは関係なく、大文字小文字を区別して比較が実行されます。
セッション モードとは関係なく大文字小文字を指定しない比較を実行するには、次のようにクエリーを指定します。
SELECT Name FROM Employee WHERE Name (NOT CS) = 'Leidner P' (NOT CS) ;
あるいは、次に示すように、ANSI互換の構文を使用したクエリーも指定できます。
SELECT Name FROM Employee WHERE UPPER (Name) = 'LEIDNER P' ;
例: 英大文字と英小文字が混在したデータでのCASESPECIFIC比較および照合
英大文字と英小文字が混在したデータでCASESPECIFIC比較および照合を実行すると、予想外の結果になることがあります。
SELECT Last_Name FROM SalesReps ORDER BY Last_Name(CS) ;
返されるソート済みリストは、そのセッションで使用している照合に応じて、次のようになります。
EBCDIC | ASCII | MULTINATIONAL |
---|---|---|
bart | ACME | ACME |
fernandez | ALBERT | Albert |
hill | Albert | ALBERT |
Albert | FARRAH | bart |
ACME | Kimble | FARRAH |
ALBERT | bart | fernandez |
FARRAH | fernandez | hill |
Kimble | hill | Kimble |