SQLでのSearched CASE WHEN
ステートメントの処理順序に関する情報が必要です。
例えば:
(CASE
WHEN Cells.Type <> 'UOM' THEN 0
WHEN Template_Colors.Uom_Case = 'ONE' THEN 1
WHEN Template_Colors.Uom_Case = 'MUL' THEN 2
END) AS CELL_WHAT_UOM
0
がない限り、結果は常にである必要がありますCells.Type <> 'UOM'
。
SQLパーサーは通常、下から上に進むことは知っていますが、Oracleではクエリが正しく機能しているように見えるため、WHEN
句はそのままの順序で処理されると思います。
ケースが他のケースよりも先に処理されることが100%保証されていますか?0
または私は強制的に書く必要があります:
(CASE
WHEN Cells.Type <> 'UOM' THEN 0
WHEN Cells.Type = 'UOM' AND Template_Colors.Uom_Case = 'ONE' THEN 1
WHEN Cells.Type = 'UOM' AND Template_Colors.Uom_Case = 'MUL' THEN 2
END) AS CELL_WHAT_UOM
...?
Oracle 10g + SQL Server 2008 r2+Postgreに関するこの情報が必要です。