有N没有。字符串。
让我们说'foo', 'bar', 'chi', 'xyz', 'moo'
。
我想形成一个虚拟表,比如说X用于连接另一个表,比如Y,其中一个列中包含那些字符串,即名称。尝试通过运行以下查询来提取数据。
select Y.name, Y.age
from(**select ('foo', 'bar', 'chi', 'xyz', 'moo') as name**) X
left join Y on X.name = Y.name;
我知道**中的文本不是正确的SQL语法,但是寻找类似于在Oracle SQL中运行查询的东西。
欢迎任何建议或想法。
答案 0 :(得分:6)
使用VARRAY或集合加入COLUMN_VALUE
伪列:
SELECT y.*
FROM TABLE( SYS.ODCIVARCHAR2LIST( 'foo', 'bar', 'chi', 'xyz', 'moo' ) ) t
INNER JOIN -- or LEFT OUTER JOIN
y
ON t.COLUMN_VALUE = y.name;
SYS.ODCIVARCHAR2LIST
是几个预先存在的VARRAY之一,但您可以轻松创建自己的集合:
CREATE TYPE Char3List IS TABLE OF CHAR(3)
/
SELECT y.*
FROM TABLE( Char3List( 'foo', 'bar', 'chi', 'xyz', 'moo' ) ) t
INNER JOIN -- or LEFT OUTER JOIN
y
ON t.COLUMN_VALUE = y.name;
或者,对于一个集合(但不是像VARRAY
这样的SYS.ODCIVARCHAR2LIST
),您甚至不需要使用联接:
SELECT *
FROM y
WHERE name MEMBER OF Char3List( 'foo', 'bar', 'chi', 'xyz', 'moo' );
您甚至可以将其作为an array from an external language传递给绑定参数。
答案 1 :(得分:1)
一个简单的方法是union all
:
select names.name, Y.age
from (select 'foo' as name from dual union all
select 'bar' as name from dual union all
select 'chi' as name from dual union all
select 'xyz' as name from dual union all
select 'moo' as name from dual
) names left join
Y
on names.name = Y.name;
请注意,select
已更改为从第一个表中取name
,而不是第二个表(毕竟,可能没有匹配)。
答案 2 :(得分:0)
ERROR: Error tagging repo 'refs/remotes/origin/master' :
org.eclipse.jgit.api.errors.NoHeadException: Tag on repository without
HEAD currently not supported hudson.plugins.git.GitException:
org.eclipse.jgit.api.errors.NoHeadException: Tag on repository without
HEAD currently not supported at
org.jenkinsci.plugins.gitclient.JGitAPIImpl.tag(JGitAPIImpl.java:509)
at
hudson.plugins.git.GitTagAction$TagWorkerThread.perform(GitTagAction.java:199)
at hudson.model.TaskThread.run(TaskThread.java:129) Caused by:
org.eclipse.jgit.api.errors.NoHeadException: Tag on repository without
HEAD currently not supported at
org.eclipse.jgit.api.TagCommand.call(TagCommand.java:137) at
org.jenkinsci.plugins.gitclient.JGitAPIImpl.tag(JGitAPIImpl.java:507)
... 2 more Trying next branch Completed