sap hana sql:将连接的值与部分匹配匹配

vxf3dgd4  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(465)

我需要在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"||'%'))
disho6za

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%”)

相关问题