带有 DECODE 的 Oracle LIKE 运算符
Oracle LIKE operator with DECODE
我是 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 pl/sql 语句,谁能告诉我这行是什么意思。
WHERE ac_co_code LIKE decode(Currency,'','%','ALL','%',Currency)
我不明白 decode 在这里用 LIKE 是什么意思。非常感谢您的帮助。
它正在即时生成搜索模式。逻辑用DECODE()
决定:
如果值 Currency
是空 VARCHAR (''),则使用 %
作为 LIKE
的模式。条件等同于:
WHERE ac_co_code LIKE '%'
否则,如果值 Currency
是 'ALL'
,则使用 %
作为 LIKE
的模式。条件等同于:
WHERE ac_co_code LIKE '%'
否则使用 Currency
的值作为 LIKE
的模式。条件等同于:
WHERE ac_co_code LIKE Currency
我是 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 pl/sql 语句,谁能告诉我这行是什么意思。
WHERE ac_co_code LIKE decode(Currency,'','%','ALL','%',Currency)
我不明白 decode 在这里用 LIKE 是什么意思。非常感谢您的帮助。
它正在即时生成搜索模式。逻辑用DECODE()
决定:
如果值
Currency
是空 VARCHAR (''),则使用%
作为LIKE
的模式。条件等同于:WHERE ac_co_code LIKE '%'
否则,如果值
Currency
是'ALL'
,则使用%
作为LIKE
的模式。条件等同于:WHERE ac_co_code LIKE '%'
否则使用
Currency
的值作为LIKE
的模式。条件等同于:WHERE ac_co_code LIKE Currency