我是新来学习甲骨文,我有一些问题,在理解语法。
INSERT INTO TEMP_BILL_PAY_LWDAY_PL
WITH tmp_acc AS (
SELECT ac_id,ac_currency,ac_category,ac_co_code
FROM account
WHERE ac_co_code LIKE decode(Currency,'','%','ALL','%',Currency) AND ac_category = '9986'
)
这是oraclepl/sql语句,谁能告诉我这行是什么意思吗。
WHERE ac_co_code LIKE decode(Currency,'','%','ALL','%',Currency)
我不明白解码在这里意味着什么。我非常感谢你的帮助。
1条答案
按热度按时间3mpgtkmj1#
它正在生成一个动态的搜索模式。逻辑使用
DECODE()
决定:如果值
Currency
是空的varchar(“”),然后使用%
作为LIKE
. 条件相当于:否则,如果
Currency
是'ALL'
然后使用%
作为LIKE
. 条件相当于:否则使用
Currency
作为LIKE
. 条件相当于:有关详细信息,请参阅oracle online docs。