【发布时间】:2018-09-06 16:26:21
【问题描述】:
我正在尝试将两个参数从第一个查询提供给第二个查询:
SELECT t1.FAM,t2.CODE FROM (SELECT t1.FAM, t2.CODE FROM (SELECT num_family FROM family) t1, (SELECT num_code FROM code) t2)
所以我有我的两个参数(多行):
FAM1 | CODE1
FAM1 | CODE2
FAM1 | CODE3
FAM2 | CODE1
FAM2 | CODE2
FAM2 | CODE3
所以这是我的两个参数,我想将这两个参数放在第三个请求中:
SELECT count(*) FROM stats WHERE num_fam LIKE '%FAM1%' AND num_code LIKE '%FAM1%';
拥有:
FAM1 | CODE1 | 5
FAM1 | CODE2 | 2
FAM1 | CODE3 | 0
FAM2 | CODE1 | 9
FAM2 | CODE2 | 4
FAM2 | CODE3 | 1
但我不明白如何组合这两个查询并将第一个查询的两个参数提供给第二个查询:我尝试使用子查询和内部连接,但它没有成功......!
【问题讨论】:
-
在这两个查询中,最后一行是否应该是
FAM2?在第一个中,列名似乎不一致。在第二个中,两者都喜欢真的应该使用FAM1吗?你为什么要使用like呢? (样本数据可能会有所帮助...) -
第一个问题:是的,我认为是 FAM2,我更正了。对于喜欢这是因为在真正的请求中我正在做一个: SELECT ( CASE WHEN LIKE '%#'|| t2.FAM ||'%' THEN ( CASE WHEN LIKE '%#'|| t2.CODE ||'%' THEN 1 ELSE 0 END) ELSE 0 END)。这很无聊,因为我确切地知道如何使用 PL/SQL 进行操作:两个嵌套游标,带有 SELECT count(*) FROM stats WHERE FAM= param1 AND CODE = param2。但我不想在 PL/SQL 中这样做,因为我希望得到一个结果作为请求。
-
所以你的
stats表有liste值,比如'abc #FAM1 def #CODE1 ghi'?
标签: oracle join parameters subquery