我需要在1个查询中编写一个查询,给出以下结果:
Table: ldis
MATNR | LDIS
123 | ldi1;ldi2;ldi3
124 | ldi1;ldi2;ldi4
125 | ldi1;ldi3;ldi4
126 | ldi2
127 | ldi
Table: labels
VALUE | LABEL
ldi1 | first label
ldi2 | second label
ldi3 | third label
ldi4 | fourth label
ldi | otherlabel
查询应获取标签包含“second”的ldi的所有matnr(因此结果应返回matnr123124&126)
我现在得到了这个,但我的查询结果只有126个matnr:
SELECT MATNR
FROM ldis
WHERE
(exists
(SELECT "VALUE"
FROM labels
WHERE
LABEL LIKE 'second%'
AND
"VALUE" LIKE '%'||ldis.LDIS||'%'))
我试着把它翻过来,但后来我得到了很多结果,因为本地设计院匹配许多标签。
SELECT MATNR
FROM ldis
WHERE
(exists
(SELECT "VALUE"
FROM labels
WHERE
LABEL LIKE 'second%'
AND
ldis.LDIS LIKE '%'||"VALUE"||'%'))
1条答案
按热度按时间disho6za1#
以下内容可能对你有用
选择[matnr],substring(ldis,0,5)firstvalue,substring(ldis,6,9)secondvalue,substring(ldis,10,15)thirdvalue from[dbo].[idis]xx where substring(ldis,0,5)in((从[dbo].[labels]a where substring(xx.ldis,0,5)=a.[value],a.[lable]like'%second%')--firstvalue或substring(ldis,6,9) in(从[dbo].[labels]b中选择b.[value],其中substring(xx.ldis,6,9)=b.[value]和b.[lable],如“%second%”)——in(从[dbo].[labels]c中选择c.[value],其中substring(xx.ldis,10,15)=c.[value]和c.[lable],如“%second%”)