!!!求教SQL语句...怎样将拼出的字符串型 字段名 可用于查询?
表Tab1内有字段及数据
TypeP1P2P3
-------------------------------
10.150.51.3
20.140.81.2
30.130.61.5
要求用Sql语句根据Type内容查出所对应的价格
select 'P '+Convert(varchar(50),Type) 价格 from tab1
----------------------------- 这段是自己拼出的字符串
要求得到结果
价格
-----------
0.15
0.8
1.5
怎样将拼出的字符串型 字段名 可用于查询?
[解决办法]
很多字段?还是很多数据?
[解决办法]
up
[解决办法]
declare @s varchar(1000)
set @s= 'select P '+ convert(varchar(50),type) + ' 价格 from tab1 '
exec(@s)
[解决办法]
declare @s varchar(2000),@i int,@cnt
select @cnt=count(*) from tab1
set @i=1
set @s= ' '
while @i <@cnt
begin
select @s=@s+ 'select p '+cast(type as vachar)+ ' as 价格 from tab1 where type = '+cast(type as vachar)+ ' union all ' from tab1 where type=@i
set @i=@i+1
end
set @s=left(@s,len(@s)-10)
exec(@s)
[解决办法]
如果Type不多的話,可以這麼寫
Select
Case Type When 1 Then P1
When 2 Then P2
When 3 Then P3
End As 价格
From
Tab1