2つの値の間のデコードを「格納」するサブテーブルを作成しようとしています。これは、そのデコードを複数回使用する必要があるためです。これらが私のテーブルだとしましょう:
Table Person
Name Number_name
Jeremy One
Thomas Two
Stephen Three
私の現在のSQLは次のようになります。
SELECT
decode (number_name,
'one',1,
'two',2,
'three',3,
'four',4)
num
FROM person where name = 'Jeremy'
and (some other condition)
UNION SELECT
decode (number_name,
'one',1,
'two',2,
'three',3,
'four,4)
num
FROM Person
where Name <> "Jeremy"
and (some other condition)
私ができるようにしたいのは、次のようなものです。
SELECT num from my_temp_table where name = "Jeremy" and (some other condition)
union select num from my_temp_table where name <> "Jeremy" and (some other condition)
...
ここで、my_temp_tableはそのクエリ中に構築され(クエリの実行が終了すると存在しなくなります)、次のようになります。
Table my_temp_table
Name num
One 1
Two 2
Three 3
Four 4
そして、うまくいけば、私は古い「すべてのデュアルユニオンから1つの名前、1つのnumを選択してください...」なしでこれを行うことができます。
これは実行可能ですか?