簡體   English   中英

SQL JOIN使用串聯字段

[英]SQL JOIN using Concatenated Field

我有兩個表,表1包含一列,該表構成表2中列的部分值,例如:

Table1.XName =“ 123456” Table2.ZName =“ ABC-123456”

我需要創建一個與之匹配的JOIN,但是使用MS-SQL 2008時,我很難做到這一點。 這是我的嘗試的一個示例:

SELECT * FROM Table1左外部聯接Table2 ON('ABC-'+ Table1.XName)= Table2.ZName

我使用哪種類型的JOIN都無關緊要,或者在哪個方向都失敗了。 我知道我在這里做的事很卑鄙,所以如果有人能指出我正確的方向,我將不勝感激。

這對我有用:

DECLARE @Table1 TABLE (XName VARCHAR(200))
DECLARE @Table2 TABLE (ZName VARCHAR(200))

INSERT
INTO    @Table1
VALUES  ('123456')

INSERT
INTO    @Table2
VALUES  ('ABC-123456')

SELECT  *
FROM    @Table1
LEFT JOIN
        @Table2
ON      ZName = 'ABC-' + XName

---

123456  ABC-123456

您能否發布表的定義以及收到的錯誤消息?

隨機猜測...

Table1.XName數據類型是數字(不是基於字符的),因此會出現轉換錯誤

SELECT * FROM
Table1
LEFT OUTER JOIN
Table2 ON 'ABC-' + CAST(Table1.XName as varchar(30)) = Table2.ZName

嘗試使用

SELECT
  *
FROM
  Table1 LEFT OUTER JOIN Table2 ON
    Table1.XName LIKE CONCAT("%", Table2.ZName, "%") OR
    Table2.XName LIKE CONCAT("%", Table1.ZName, "%")

如果適合您,請標記答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM