select * from Tablename where 1=1 and
decode (
REGEXP_COUNT ('TEST1,TEST2', ','),
0,
TableName.Srcsyscd = 'CONCUR',
TableName.Srcsyscd='SAP'
)
执行命令时出错:[错误]执行(38:64):ORA-00907:缺少右括号
请使用仅解码
帮助提供解决方案答案 0 :(得分:1)
我猜你想要
SELECT *
FROM tablename
WHERE 1 = 1
AND tablename.srcsyscd =
decode(regexp_count('TEST1,TEST2', ','), 0, 'CONCUR', 'SAP')
答案 1 :(得分:1)
将DECODE
放入WHERE
子句时,可以使用它来删除与某些值不匹配的行。如果这是你的意图,你应该将它与某些东西进行比较。例如:
select * from Tablename where 1=1 and
TableName.Srcsyscd = decode (
REGEXP_COUNT ('TEST1,TEST2', ','),
0,
'CONCUR',
'SAP'
)
如果要显示它,请将其放在SELECT
子句中,如下所示:
select Tablename.*,
decode (
REGEXP_COUNT ('TEST1,TEST2', ','),
0,
'CONCUR',
'SAP'
)
from Tablename
在这两种情况下,如果用列名替换“TEST1,TEST2”会更有意义。