我想使用内部和外部select语句过滤游标中的记录。 我如何实现这一目标?
我只希望来自两个表的'_02'记录。
table A:
col1
1122_01
1234_02
3456_02
7899_02
table B:
col1
1111_02
1234_02
4567_02
table Final:
col1
3456_02
7899_02
SELECT distinct a.col1
FROM A a
WHERE NOT EXISTS (SELECT 1 FROM B b
WHERE b.col1 = a.col1
and b.col1='02')
and a.col1='02'
这会有用吗?
还是这个?
SELECT distinct t.item, t.skuloc loc
FROM SCPOMGR.UDT_DFUTOSKUMAP t
, SCPOMGR.udt_gen_param G
WHERE NOT EXISTS (SELECT *
FROM SCPOMGR.SKU s1
, SCPOMGR.udt_gen_param G
,SCPOMGR.UDT_DFUTOSKUMAP t
WHERE s1.ITEM = t.ITEM
AND s1.LOC = t.SKULOC
and G.region='XYZ'
and G.jda_code= substr(s1.loc,-2,2)
)
and G.region='XYZ'
and G.jda_code= substr(T.SKUloc,-2,2)
答案 0 :(得分:0)
看起来你想要一套
A.col1
B.col1
_02
结尾。如果您将使用SQL,那么学会非常精确地指定您想要的内容至关重要。从本质上讲,SQL是一种用于指定数据集的方案。在指定要用SQL实现的要求时,使用基本集理论的概念。
一旦有了精确的规范,用SQL编写它通常很容易。如果您无法在SQL中表达您想要的内容,将重新访问该规范。
在你的情况下:
SELECT DISTINCT A.col1
FROM A
LEFT JOIN B ON A.col1 = B.col1
WHERE B.col1 IS NULL
AND A.col1 LIKE `%_02`
第三项要求使用LIKE '%suffix
,第二项要求使用旧LEFT JOIN ... IS NULL
技巧,第一项要求使用DISTINCT A.col1
。
此特定查询适用于各种SQL方言。游标与此案无关。