文字タイプの引数のルール - Teradata Database - Teradata Vantage NewSQL Engine - 文字列演算子、INDEX、文字型の引数のルール。

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

引数が文字タイプの場合、照合は論理文字に対して行なわれます。1バイト文字は1バイト文字と照合され、マルチバイト文字はマルチバイト文字と照合されます。照合を実行するには、両方の式の論理文字表現が同じでなければなりません。

引数のサーバー文字セットが同じものでない場合、INDEXは暗黙文字変換を行ないます。

CASESPECIFIC属性は、文字が一致するものとしてみなせるかどうかを左右します。

セッション モード 文字列およびリテラルの大文字小文字の区別のデフォルト
ANSI CASESPECIFIC。
Teradata NOT CASESPECIFIC。

例外はGRAPHIC型の文字データで、この場合は必ずCASESPECIFICになります。

大文字小文字の区別のデフォルトを上書きするには、CREATE TABLEまたはALTER TABLEの中で文字の列に対してCASESPECIFICまたはNOT CASESPECIFIC句を適用することができます。

あるいは、CASESPECIFICまたはNOT CASESPECIFIC句をINDEX文字列引数に適用することができます。

条件 結果
どちらかの引数の属性がCASESPECIFICの場合(デフォルトまたは明示指定によって) シンプルなLatin文字は、文字が同じで、大文字小文字の区別も同じ場合にのみ、一致しているとみなされます。
両方の引数の属性がNOT CASESPECIFICの場合(デフォルトまたは明示指定によって) 操作を開始する前に、一部の文字が大文字に変換されます。

文字が小文字のシンプルなLatin文字である場合は、操作が始まる前に、大文字に変換されます。

文字がLatin以外の1バイト文字、マルチバイト文字、または1バイト文字データとマルチバイト文字データとの間の移行を示すバイトである場合は、大文字に変換されません。

文字タイプ引数を使用している場合、INDEXによる文字の照合を大文字小文字を区別して行なうには、最低1つの引数にCASESPECIFIC句を指定します。 例えば、

   SELECT Name 
   FROM Employee 
   WHERE INDEX(Name, 'X' (CASESPECIFIC)) = 1;

INDEXによる文字の照合を大文字小文字の区別を無視して行なうには、両方の引数にNOT CASESPECIFIC句を指定します。