-1

我是 sql 的初学者,我正面临这个问题。

我必须在两个表(Masse 和 LX03)之间进行连接。

我的连接是在具有不同名称的两列之间进行的:LX03.Emplacement 和 Masse.IDMasse

我从我的选择中排除了一些值,以缩短我的代码。

SELECT DISTINCT 
    Masse.IDMasse AS IDMasse,   
    Masse.Capacité_stock_sol AS Capacité_stock_sol, 
        ...
    LX03.Emplacement AS Emplacement,    
    LX03.Article AS Article,    
    ...
FROM 
    LX03 INNER JOIN Masse ON LX03.Emplacement = Masse.IDMasse

我希望我的查询完全匹配这两列,但不区分大小写。例如:m14 = M14 m1-4 = m1-4

但是,当我运行查询时,它会返回这两个值不完全匹配的结果,例如:LX03.Emplacement = M1-4 和 Masse.IDMasse = M14

我最初试图排除所有包含标点符号的值,但我也需要这些值。

我想知道是否有办法要求严格相似的值,但不区分大小写?

我在互联网上找不到太多帮助,但也许因为我是初学者,我没有使用正确的术语?如果是这样,请让我参考一些解释它的网站 - 我想从我的错误中吸取教训!

谢谢你的帮助

编辑澄清:目前,这些是我的查询匹配的两个值:M14 = M1-4 但我不希望带有“-”的值与没有它的值匹配。

我的结果图片,显示不匹配的地方

4

2 回答 2

0

假设您只需要-在 value 列中忽略,您可以忽略大小写,然后在 join 子句中使用它们 -

SELECT DISTINCT 
Masse.IDMasse AS IDMasse,   
Masse.Capacité_stock_sol AS Capacité_stock_sol, 
    ...
LX03.Emplacement AS Emplacement,    
LX03.Article AS Article,    
...
FROM LX03 
INNER JOIN Masse ON REPLCAE(UPPER(LX03.Emplacement), '-', '') = REPLCAE(UPPER(Masse.IDMasse), '-', '')
于 2019-07-31T09:30:56.247 回答
-1

关于这一点:

但是,当我运行查询时,它会返回这两个值不完全匹配的结果,例如:LX03.Emplacement = M1-4 和 Masse.IDMasse = M14 我最初尝试排除所有包含标点符号的值,但我需要那些也。

您可以尝试比较长度(加入后)

于 2019-07-31T09:01:45.873 回答