我正在尝试合并两个表格如下
SELECT * FROM T1
LEFT JOIN T2 ON T1.EMPnum = T2.EMPnum
以上工作正常,但我需要加入才能使用表T2中的公共密钥EMPnum
记录的第一次出现,以便查询返回完全与T1相同的行数
谢谢Avi
答案 0 :(得分:1)
SQL表本质上是无序的,所以没有“第一”键这样的东西。在大多数数据库中,您可以执行以下操作:
with t2 as (
select t2.*, row_number() over (partition by EMPnum order by id) as seqnum
from t2
)
select *
from t1 left join
t2
on t1.EMPnum = t2.EMPnum and t2.seqnum = 1;
此处id
只是指定排序的任何列。如果不存在,您可以使用EMPnum
获取任意行。