从另一个表的串联中选择SQL Server中的特定列

时间:2014-04-15 18:42:55

标签: sql sql-server tsql sql-server-2008-r2

我正在尝试根据另一个表中的值选择特定列

我有一个包含以下列的表:

TableA

Item_Id,Column01,Column02,Column03,Column04,Column05,  

TableA的示例数据:

1,$1.00,$2.00,$3.00,$4.00,$5.00

TableB列:

 Item_ID,Column  

TableB的数据:

1,05

我希望能够根据TableB中的内容返回值。目前我正在连接以获取字段名称,但我不知道如何获得该值。

Select 'Column'+TableB.[Column] 
from TableA 
inner join TableB on TableA.Item_Id = TableB.ItemB
WHERE TableA.Item_Id = 1

因此,对于此特定示例,查询将从TableA中选择column05,结果将为$ 5.00。

1 个答案:

答案 0 :(得分:1)

您可以使用CASE statament

Select CASE TableB.[Column] When '01' THEN TableA.Column01
                            When '02' THEN TableA.Column02
                            When '03' THEN TableA.Column03
                            When '04' THEN TableA.Column04
                            When '05' THEN TableA.Column05
       END as Value
from TableA 
inner join TableB on TableA.Item_Id = TableB.ItemB
WHERE TableA.Item_Id = 1

但tableA的column01 ... column05需要具有相同的数据类型,或转换为相同的数据类型。