SQL如果存在,如何映射值?

SQL如果存在,如何映射值?,sql,Sql,我有一些值的表1 |id|value| ---------- |1|val1| |2|val2| |3|val3| |4|val4| 和表2的映射 |key|value| ----------- |val2|OtherValue| |val3|SomeValue| 我需要一个选择结果,如: |id|value| --------- 1|val1 2|OtherValue 3|SomeValue 4|val4 我可以这样做: select t1.id, t1.value from table

我有一些值的表1

|id|value|
----------
|1|val1|
|2|val2|
|3|val3|
|4|val4|
和表2的映射

|key|value|
-----------
|val2|OtherValue|
|val3|SomeValue|
我需要一个选择结果,如:

|id|value|
---------
1|val1
2|OtherValue
3|SomeValue
4|val4
我可以这样做:

select t1.id, t1.value from table_1 t1 join table2 t2 on t2.value = t1.value
但它不起作用 谢谢

您应该在表2的键上加入表1的值

您应该将表_1的值连接到表_2的键上


您希望在值上使用isnull进行左连接

select t1.id, isNull(t2.value,t1.value) 
from table_1 t1 left join table2 t2 
on t2.key= t1.value

您希望在值上使用isnull进行左连接

select t1.id, isNull(t2.value,t1.value) 
from table_1 t1 left join table2 t2 
on t2.key= t1.value

请尝试以下sql查询:

    SELECT id, 
       CASE 
         WHEN t1.[value] = t2.[key] THEN t2.[value] 
         ELSE t1.[value] 
       END AS 'value' 
FROM   table_1 t1 
       LEFT OUTER JOIN [dbo].[table_2] t2 
                    ON t1.[value] = t2.[key] 

请尝试以下sql查询:

    SELECT id, 
       CASE 
         WHEN t1.[value] = t2.[key] THEN t2.[value] 
         ELSE t1.[value] 
       END AS 'value' 
FROM   table_1 t1 
       LEFT OUTER JOIN [dbo].[table_2] t2 
                    ON t1.[value] = t2.[key] 
你有多种选择。 这里最重要的是,您正在做的是左连接

左联接的工作原理是包括左侧表中的行,即使右侧表中缺少相应的行。换句话说,如果要通过左连接选择所有列从提供的数据集中选择所有行,则将获得:

|table_1 |   table_2       |
|id|value|   key|value     |
| 1| val1|<null>|<null>    |
| 2| val2|  val2|OtherValue|
| 3| val3|  val3|SomeValue |
| 4| val4|<null>|<null>    |
你有多种选择。 这里最重要的是,您正在做的是左连接

左联接的工作原理是包括左侧表中的行,即使右侧表中缺少相应的行。换句话说,如果要通过左连接选择所有列从提供的数据集中选择所有行,则将获得:

|table_1 |   table_2       |
|id|value|   key|value     |
| 1| val1|<null>|<null>    |
| 2| val2|  val2|OtherValue|
| 3| val3|  val3|SomeValue |
| 4| val4|<null>|<null>    |

什么类型的数据库?如果标签正确,我认为您需要在t2上连接table2 t2。key=t1。value什么类型的数据库?如果标签正确,我认为您需要在t2上连接table2 t2。key=t1。value这将正确连接,但是如果t2Oh道歉@Kevin中不存在条目,他仍然需要一些东西来获得正确的值!我错过了那部分。谢谢你的评论。这将获得正确的加入,但如果t2Oh道歉@Kevin中不存在条目,他仍然需要一些东西来获得正确的值!我错过了那部分。谢谢你的评论。