16.20 - UPPERCASE句 - Teradata Vantage NewSQL Engine

Teradata Vantage™ データ タイプおよびリテラル

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN

目的

文字データが列に英大文字として格納されることを指定します。

CASTおよびTeradata変換構文で使用して、値を大文字に変換します。

構文



ANSI準拠

UPPERCASEは、ANSI SQL:2011規格に対するTeradataの拡張機能です。

ルール:すべてのモード

ANSIモードとTeradataモードのどちらでも、次のルールがUPPERCASEに適用されます。
  • SQLリクエスト内でUPPERCASEオプションを指定すれば、保管されている列の大文字小文字の指定割り当てを指定変更することができます。
  • 列がUPPERCASEとして宣言されている場合、小文字はそれに対応する大文字に変換されて格納されます。

    KANJI1サーバー文字セットは、a~zの26文字を大文字に変換するだけであることに注意する必要があります。

  • UPPERCASEは、ISO 10646レパートリーのすべての文字をサポートします。

    文字の列をUPPERCASEになるよう宣言し、'ά'(ギリシャ文字のアルファの小文字に気息記号の付いたもの)と入力した場合、その文字は'Ά'(ギリシャ文字のアルファの大文字に気息記号が付いたもの)として変換され、格納されます。

    同じことが、(UC)修飾子にも適用されます。

    次のSQLの述語の評価結果はTRUEになります。
    'ά' (UC) = 'Ά'
  • 以下に示すデータ型はUPPERCASEをサポートしません。
    • CLOB
    • UDT

UPPERCASE句およびUPPER関数

UPPER関数はANSI SQL:2011規格で定義されている関数であり、値をUPPERCASEとして宣言することではnot。詳細は、<Teradata Vantage™ SQL関数、式、および述部、B035-1145>の「UPPER」の項を参照してください。

使用ルール

次の表に、英大文字/英小文字の区別の基準および問題を要約します。

英大文字/英小文字区別の指定 使用規則
UPPERCASEが指定ない場合

NOT CASESPECIFICが指定された場合

以下は固有インデックスとしてすべて等価です。
  • AAA
  • aaa
  • AaA
  • aAA
UPPERCASE (UC) 文字データは、入力された時点での大文字小文字に関係なく、大文字で格納されます。

変換が実行されるため、列がUPPERCASEと定義されている場合に、「aaa」と入力された文字は「AAA」として格納されます。したがって、固有インデックスに使用される時点で「AAA」と等しくなります。

例: UPPERCASE句

次の例では、Gender列列は、UPPERCASEオプションを使用して作成されます。

Gender CHAR UPPERCASE

Genderのデータが以下のINSERT文に示すように英小文字で入力された場合でも、データは英大文字で格納され、英大文字で返されます。

INSERT INTO Employee (Name, EmpNo, Gender ...
 VALUES ('Smith', 10021, 'f', ...);
   
SELECT Gender
FROM Employee;
   Gender
   F

例: 連結演算子を使用したUPPERCASE句

連結(||)演算子と共に使用する場合には、UCは括弧で囲み、列名の直後に置く必要があります。

SELECT (City_name (UC)) || ', ' || State, Population
FROM World
WHERE Country = 'USA'
ORDER BY Population ;