我有一個採用輸入變量的plsql過程。這個變量(my_plsql_var)我需要決定我的select語句的where子句。如果我的變量是A,那麼我需要查詢一個特定的where子句,如果它是B它使用那個特定的where子句,並且同樣適用於C.我嘗試了一些查詢,但它們不起作用。我得到的最接近的是這個,但似乎有語法錯誤,甚至不確定查詢是否會產生我所需要的。有條件的地方條款基於過程輸入的Oracle SQL可變
SELECT ID,
CASE(CAST WHEN my_col1 in ('A') and my_col2 = 'A' then 'A GROUP'
WHEN my_col1 in ('B') and my_col2 = 'B' then 'B GROUP'
WHEN my_col1 in ('C') and my_col2 = 'C' then 'C GROUP'
else null
end as varachar2)) as my_awesome_col
FROM
my_table
WHERE
id= 100 and
name = 'Smith' and
CASE (WHEN my_plsql_var = 'A' then my_col1 in ('A') and my_col2 = 'A'
WHEN my_plsql_var = 'B' then my_col1 in ('B') and my_col2 = 'B' and my_special_col = 'B'
WHEN my_plsql_var = 'C' then my_col1 in ('C') and my_col2 = 'C'
end as varachar2)
哇哈哈的作品是如此簡單。謝謝! – user2924127