2016-07-07 113 views
2

我有一個值列表,它作爲一個列表工作。Oracle APEX 5.0 - 基於(多個)複選框值的SQL查詢

select KEY, VALUE 
from keytable 
WHERE key = :LOV_KEYLIST 

這工作得很好。

但是,如果我做LOV作爲複選框,它根本不起作用。 這些複選框是一個新項目,我希望他們從我的交互式報告中更改我的選擇查詢。

如何選擇多個複選框,並只顯示覆選框中的值應用的行?

謝謝。

回答

3

,因爲它多值(VAL1:VAL2:VAL3:VALN ..), http://docs.oracle.com/cd/E14373_01/appdev.32/e13363/check_box.htm#CHDBGDJH

試試這個:

select KEY, VALUE 
from keytable 
-- check all posible values in checkbox item 
WHERE (instr(':'||:LOV_KEYLIST||':',':'||key||':') >0 
     -- if value is null show All rows 
     or :LOV_KEYLIST is null) 
+0

這是偉大的,完美的作品。你能解釋一下INSTR的語法嗎?我很難搞清楚。 – OldMcDonald

+1

INSTR爲substring函數搜索字符串。該函數返回一個整數,指示字符串中字符的位置,該字符串是此事件的第一個字符。在這種情況下,如果INSTR> 0意味着什麼字符串包含子字符串(您的ID_LIST - 字符串,ID - 子字符串)在官方文檔中閱讀更多https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions068 .htm –

+0

好吧,但是由於它返回的整數可能大於0,select究竟如何知道要選擇哪些行?對我來說,它看起來像:「... WHERE 2> 0」爲例。 – OldMcDonald