【发布时间】:2014-04-17 09:22:28
【问题描述】:
我被困在加入两个表“a”和“b”。这两个表的结构如下所示。
表 A
+-------------+---------------------+
+ SKU | Title +
+-------------+---------------------+
+ 12345_786 | Some text +
+ | +
+ 12345_231 | Sony +
+ | +
+ 12345_222 | Samsung +
+ | +
+ 67481_21 | IBM +
+ | +
+ 88723_231 | HP +
+-------------+---------------------+
表 B
+-------+---------------------+
+ SKU | Price +
+-------+---------------------+
+ 786 | $230 +
+ | +
+ 231 | $540 +
+ | +
+ 222 | $120 +
+ | +
+ 21 | $220 +
+ | +
+ 231 | $50 +
+-------+---------------------+
表 SKU 约定是 ParentSKU + "" + Child SKU。所以表中的每个 sku 都有一个子 sku。父子被“”隔开。
我想在表 B.SKU 上的“_”之后加入表 A.SKU 部分
到目前为止,我已经尝试了以下查询,但没有得到想要的结果。
SELECT A.SKU,B.Price
FROM A
INNER JOIN
B ON
Substring(A.SKU, patindex('%_%', A.SKU),
Cast(Len(A.SKU) as int)-cast(patindex('%_%',A.SKU)as int))
= CAST(B.SKU AS varchar(12))
我们将非常感谢您在这方面的帮助。
【问题讨论】:
-
你使用的是mysql还是sql-server?
-
抱歉没有提到问题。我正在使用 MS-SQL2005
-
@Mehboob 我认为这在不使用
substring的情况下也是可行的,但在加入表格时使用LIKE。
标签: mysql sql sql-server