Oracle11g如何爲'where value in'子句中的每個項目返回記錄?
我想知道玩家是否曾經玩過游擊手。然而,玩家 甚至可能不在我的桌子上,但我仍然想爲該玩家返回一排。在這種情況下,玩家#3不在桌子上,但我想返回一排。
選擇標準
如果玩家擁有至少一個游擊手記錄然後返回YES只有1行。
如果玩家至少有一條記錄,並且沒有一條是SHORTSTOP,那麼只返回一行NO。
如果玩家沒有記錄,那麼只返回一行NO。
查詢
with baseball_players as
(select 1 as player_id, 'SHORTSTOP' as position from dual union all
select 1 as player_id, 'FIRSTBASE' as position from dual union all
select 2 as player_id, 'FIRSTBASE' as position from dual)
select player_id, case position
when 'SHORTSTOP' then 'YES'
else 'NO'
end has_played
from baseball_players
where player_id in (1,2,3)
問:我如何寫查詢來獲取想要的結果嗎?
所需的輸出
PLAYER_ID HAS_PLAYED
----------------------
1 YES
2 NO
3 NO
什麼是你的問題? – 2013-04-11 20:50:04
我剛剛向OP添加了問題.. – zundarz 2013-04-11 20:52:16
你打算如何將'player_id'傳遞給查詢?你可以請你發佈**你的**表的結構嗎? – 2013-04-11 20:56:57