Sql server 2012 sql中的内部联接表

Sql server 2012 sql中的内部联接表,sql-server-2012,inner-join,Sql Server 2012,Inner Join,我有两张桌子要连在一起 表A: +--------+-----------+---------+ | row_id | category | val_1 | +--------+-----------+---------+ | 1 | cat1 | 6.5 | | 1 | test | 6.5 | | 1 | dog1 | 2.1 | +--------+-----------+---------+ 表B

我有两张桌子要连在一起

表A:

+--------+-----------+---------+
| row_id | category  | val_1   |
+--------+-----------+---------+
| 1      | cat1      | 6.5     |
| 1      | test      | 6.5     |
| 1      | dog1      | 2.1     |
+--------+-----------+---------+
表B:

+-----------+-----------+
| row_id    | val_2     |
+-----------+-----------+
| 1         | 2.0       |
+-----------+-----------+
当我使用内部联接时,得到如下结果:

+-----------+-----------+-----------+------------+
| row_id    | category  | val_1     | val_2      |
+-----------+-----------+-----------+------------+
| 1         | cat1      | 6.5       | 2.0        |
| 1         | test      | 6.5       | 2.0        |
| 1         | dog1      | 2.1       | 2.0        |
+-----------+-----------+-----------+------------+
+-----------+-----------+-----------+------------+
| row_id    | category  | val_1     | val_2      |
+-----------+-----------+-----------+------------+
| 1         | cat1      | 6.5       | 2.0        |
| 1         | test      | 6.5       | NULL       |
| 1         | dog1      | 2.1       | NULL       |
+-----------+-----------+-----------+------------+
但我不想重复Val_2的结果。我想要这样的结果:

+-----------+-----------+-----------+------------+
| row_id    | category  | val_1     | val_2      |
+-----------+-----------+-----------+------------+
| 1         | cat1      | 6.5       | 2.0        |
| 1         | test      | 6.5       | 2.0        |
| 1         | dog1      | 2.1       | 2.0        |
+-----------+-----------+-----------+------------+
+-----------+-----------+-----------+------------+
| row_id    | category  | val_1     | val_2      |
+-----------+-----------+-----------+------------+
| 1         | cat1      | 6.5       | 2.0        |
| 1         | test      | 6.5       | NULL       |
| 1         | dog1      | 2.1       | NULL       |
+-----------+-----------+-----------+------------+

如果有人能帮助我,我将不胜感激。

这行得通吗,迈克?这可能不是您所需要的,但您可以根据需要进行调整

SELECT 
    TABLE_A.*,
    CASE ROW_NUMBER() OVER(PARTITION BY TABLE_B.val_2 ORDER BY TABLE_A.row_id DESC) 
        WHEN 1 THEN TABLE_B.val_2
        ELSE NULL
    END as val_2
FROM
    TABLE_A
INNER JOIN
    TABLE_B ON  TABLE_A.row_id = TABLE_B.row_id
ORDER BY
    TABLE_A.Row_id