我是新学oracle的,在理解语法上遇到了一些问题。
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'
)
这是oracle plsql语句,谁能告诉我这行是什么意思。
WHERE ac_co_code LIKE decode(Currency,'','%','ALL','%',Currency)
我不明白这里的解码与LIKE是什么意思。我真的很感激一些帮助。
这是在飞行中产生一个搜索模式。这个逻辑使用了 DECODE()
来决定。
如果该值 Currency
是一个空的VARCHAR(''),那么就用 %
为例 LIKE
. 该条件将等同于。
WHERE ac_co_code LIKE '%'
Else, if the value Currency
是 'ALL'
然后用 %
为例 LIKE
. 该条件将等同于。
WHERE ac_co_code LIKE '%'
Else使用 Currency
为例 LIKE
. 该条件将等同于。
WHERE ac_co_code LIKE Currency
见 Oracle在线文档 详见。