例1: スカラー式でのUDTデータ型の使用 - Teradata Database - Teradata Vantage NewSQL Engine

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

値形式または検索形式のCASE式での等価比較が、TRUEに評価された場合に返す式として、または、ELSE条件で返す値として、scalar_expression_nおよびscalar_expression_mを使用します。

これらの例のために、次のようにテーブルを定義します。

create table udtval038_t1(id integer, udt1 testcircleudt, udt2 testrectangleudt) PRIMARY INDEX (id);

次に、検索形式のCASE式の例を示します。すべてのスカラー式が同じUDTデータ型となっています。

search_condition_nは、scalar_expression_nと異なるUDTデータ型にすることができます。   SELECT * FROM udtval038_t1
          WHERE udt1 = CASE
          WHEN udt2 <> new testrectangleudt('2,2,4,4,pink,rect')
          THEN new testcircleudt('1,1,2,blue,circ')
          ELSE new testcircleudt('2,2,4,purple,circ')
*** Query completed. 2 rows found. 3 columns returned.
          END;
id udt1
----------- -----------------------------------------------
          1 1, 1, 2, yellow, circ
          2 2, 2, 4, purple, circ

ただし、次の例は、スカラー式に異なるデータ型があるため、正常に完了しません。

   SELECT * FROM udtval038_t1
          WHERE udt1 = CASE
          WHEN udt2 <> new testrectangleudt('2,2,4,4,pink,rect')
          THEN new testcircleudt('1,1,2,blue,circ')
          ELSE new testrectangleudt('2,2,4,4,purple,rect')
          END;