Haa*_*alo 2 sql t-sql sql-server left-join sql-view
对于你们中的一些人来说,这可能是一个非常基本的问题,但请耐心等待这个新手学习 SQL 服务器。
我需要创建一个视图,我试图在其中连接两个表中的多个列。唯一的问题是,其中一列的值具有额外的字符,需要使用 RIGHT 函数或 SUBSTRING 将其删除,以便能够匹配另一个表中的相应列。
这是我写的内容,但我需要帮助了解我在 SerialNo 列中做错了什么:
SELECT a.ID,
a.SerialNo,
a.Price,
a.ItemName,
b.ID, b.SNumber,
b.ItemDesc
FROM Table1 a LEFT JOIN
Table2 b ON a.ID = b.ID AND
a.Price = b.Price AND
a.SerialNo = (SELECT RIGHT(b.SNumber, 6) AS b.SNumber from Table2)
Run Code Online (Sandbox Code Playgroud)
您不需要子查询来处理第二个连接条件,只需RIGHT
直接调用:
SELECT a.ID, a.SerialNo, a.Price, a.ItemName, b.ID, b.SNumber, b.ItemDesc
FROM Table1 a
LEFT JOIN Table2 b
ON a.ID = b.ID AND
a.Price = b.Price AND
a.SerialNo = RIGHT(b.SNumber, 6);
Run Code Online (Sandbox Code Playgroud)
附带说明一下,如果您认为需要经常执行此查询,那么您可能需要考虑Table2
为此连接添加一个新列,即SNumber
. 这样做的原因是当条件涉及函数时,连接可能会非常昂贵。而且,在这种情况下通常也不能使用索引。
归档时间: |
|
查看次数: |
1275 次 |
最近记录: |