我有一个值列表,以这种格式返回值:“名称- ID”。在Universe中,我需要在我的表和用户选择的值之间进行连接,但我的问题是在我的表中只存在ID列。
我能做到这一点:
select t.column1, t.column2, ...
from my_table t
where t.id in regexp_substr(@prompt('1. Choose an element:', 'C', 'Elements\Identifiers',
Mono, Free, not_persistent, ), '*[[:digit:]]+$')
使用正则表达式,我得到了标识符的数字部分,并且“联接”工作正常,但是现在我需要允许多重选择。所以我的问题是有没有一种方法可以将regexp_substr
应用于由prompt返回的每个值?
SQL翻译:(有没有办法做到这一点?)
select t.column1, t.column2, ...
from my_table t
where t.id in regexp_substr(('FOO - 123', 'BAR - 456', 'ZOO - 789'), '*[[:digit:]]+$')
2条答案
按热度按时间5cg8jx4n1#
我不确定如何使用
in
来实现这一点,除非使用递归CTE。但以下逻辑可能行得通:rbpvctlc2#
如果在
@Prompt
定义中将Mono
更改为Multi
,则应该能够选择或输入多个值。然后,所选值将以逗号分隔的列表形式返回,就像IN
子句一样。因此,您的SQL语句将是: