SQL版的VLOOKUP

use*_*274 5 sql lookup join vlookup

我是SQL的新手,如果你有空闲的时刻,我想知道是否有人可以帮我复制VlookupSQL中的Excel 函数吗?

从一些研究中,我怀疑它是join我需要的功能之一,但是,我不想只选择两个表中包含的数据 - 我只想在1个表中查找另一个表中的值.

如果数据包含在查找表中,则返回值,如果不包含,则返回NULL.

我在下面给出了几个示例表来帮助说明我的问题.

请注意,产品'C'和'D'不在表2中,但它们仍在结果表中但具有NULL值.

我也有大量独特的产品,所以我不是在寻找一个包含硬编码的答案,例如; CASE WHEN [Product] = 'A' THEN...



表格1

Product    Quantity
-------------------
A          10
B          41
D          2
C          5
B          16
A          19
C          17
A          21
Run Code Online (Sandbox Code Playgroud)

表2

Product    Cost
-----------------
A          £31.45
B          £97.23
Run Code Online (Sandbox Code Playgroud)



结果表

Product   Quantity    Cost
-----------------------------
A         10          £31.45
B         41          £97.23
D         2           NULL
C         5           NULL
B         16          £97.23
A         19          £31.45
C         17          NULL
A         21          £31.45
Run Code Online (Sandbox Code Playgroud)

Len*_*art 7

看起来你需要一个外连接,我将在我的例子中使用左边的连接:

select t1.Product, t1.Quantity, t2.Cost
from table1 as t1
left outer join table2 as t2
    on t1.Product = t2.Product
Run Code Online (Sandbox Code Playgroud)

您也可以省略外部关键字:

select t1.Product, t1.Quantity, t2.Cost
from table1 as t1
left join table2 as t2
    on t1.Product = t2.Product
Run Code Online (Sandbox Code Playgroud)