oracle运算符

knpiaxh1  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(473)

我是新来学习甲骨文,我有一些问题,在理解语法。

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)

我不明白解码在这里意味着什么。我非常感谢你的帮助。

3mpgtkmj

3mpgtkmj1#

它正在生成一个动态的搜索模式。逻辑使用 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 online docs。

相关问题