在列值不同的表上编写查询联接的最佳方法是什么?

时间:2018-09-05 14:42:15

标签: sql sql-server-2012

我在拧查询时需要帮助。我是一个初学者,很困惑哪种选择是最好的方法。 我尝试的选项是让一个带有条件条件的子查询将所有0转换为N,将1转换为Y并加入列。还有其他替代和聪明的写作方式吗?

我有两个表,一个是具有所有标准值的查找表。从第二个表中,我必须在第一个表中查找列值。

示例 表1

col_1  col_2
Y        Yes
N         No

表2

col_1    col_2
ABC      0
XYZ      1

表2中的值0在表1中为N,类似地1为Y

如何加入这些表格?

我的最终输出应该是

col1_1   col1_2
ABC      No
XYZ      Yes

1 个答案:

答案 0 :(得分:1)

那应该做的。但这不是最佳选择,如果您有很多行。

select table2.col_1, table1.col_2
from table2 inner join table1
on table2.col_2 = case table1.col_1 when 'Y' then 1 when 'N' then 0 else -1 end;