7.32.6 内部導出表にスカラ関数CONVERTを付加する条件
次の場合,内部導出表にスカラ関数CONVERTを付加します。そのため,スカラ演算の数,およびスカラ演算の入れ子の数は,その分1つ加算されます。
-
内部導出表に集合演算を指定した場合
結果が集合演算の結果のデータ型となるようなスカラ関数CONVERTを,選択式に付加します。
- (例)
-
-
導出表を使用した問合せ
SELECT "SN","KI"*1.08 AS "税込金額" FROM (SELECT "商品名","商品金額","原産地" FROM "商品A" WHERE "商品金額">10000 UNION ALL SELECT "商品名","商品金額"*0.8,"原産地" FROM "商品B" WHERE "商品金額">20000) AS "X"("SN","KI","GE") WHERE "GE" IN('東京','大阪')
-
導出表の展開
SELECT CONVERT("商品名",VARCHAR(100)) AS "SN", CONVERT("商品金額"*1.08,DEC(23,2)) AS "税込金額" FROM "商品A" WHERE "商品金額">10000 AND "原産地" IN('東京','大阪') UNION ALL SELECT CONVERT("商品名",VARCHAR(100)), CONVERT("商品金額"*0.8*1.08,DEC(23,2)) FROM "商品B" WHERE "商品金額">20000 AND "原産地" IN('東京','大阪')
-
-
次のすべての条件を満たす場合
-
「7.32.5 導出表の展開有無」の「注※7」の「条件2」を満たす内部導出表が展開される。
-
導出問合せを操作する問合せ指定に指定した集合関数の結果のデータ型と,導出問合せに指定した集合関数の結果のデータ型が異なる。
結果が導出問合せを操作する問合せ指定に指定した集合関数の結果のデータ型となるようなスカラ関数CONVERTを,導出問合せに指定した集合関数に付加します。
- (例)
-
-
導出表を使用した問合せ("温度"列のデータ型がDECIMAL(10,2)の場合)
SELECT "測定地点","測定日",AVG("温度") AS "温度" FROM (SELECT "測定地点","測定日",MAX("温度") AS "温度" FROM "センサデータ" GROUP BY "測定地点","測定日") "V1" WHERE "測定日" BETWEEN DATE'2018-01-01' AND DATE'2018-12-31' GROUP BY "測定地点","測定日"
-
導出表の展開
SELECT "測定地点","測定日",CONVERT(MAX("温度"),DECIMAL(38, 30)) AS "温度" FROM "センサデータ" WHERE "測定日" BETWEEN DATE'2018-01-01' AND DATE'2018-12-31' GROUP BY "測定地点","測定日"
-
-