我知道我以前做过这个,但我现在不能弄清楚这一点。我在查询中得到多行,但我希望每个ID 2一行。
尝试了很多变体并在谷歌上搜索。找到了一些有希望的行号示例,但无法使其工作。
表1:
Id1 Id2
1234500 T100100
1234501 T100100
1423400 T761232
1456100 T441122
1456101 T441122
字符串
表2:
Id1 Value
1234500 1015
1234501 1080
1423400 1080
1456100 1044
1456101 1077
型
我有一个列表中的所有ID 2:s。
SELECT Id2, Value
FROM Table1 a
JOIN Table2 b
ON a.Id1 = b.id1
WHERE a.Id2 in ('T100100','T761232','T441122')
型
给
Id2 Value
T100100 1015
T100100 1080
T761232 1080
T441122 1044
T441122 1077
型
我不想要这样的结果:
Id2 Value1 Value2
T100100 1015 1080
T761232 1080 null or space or 0
T441122 1044 1077
型
1条答案
按热度按时间pieyvz9o1#
您可以使用窗口函数
ROW_NUMBER()
为id2定义的分区中的每一行分配一个唯一的连续整数,然后应用条件聚合:字符串
Demo here