34,838
社区成员




declare @i int
set @i=1; --如果是1就是选第一个变量
declare @sql varchar(300)
set @sql='
declare @charname1 varchar(20)
set @charname1 =''chinese_one''
declare @charname2 varchar(20)
set @charname2 =''chinese_two''
declare @charname3 varchar(20)
set @charname3 =''chinese_three''
select @charname'+cast(@i as varchar(6))+' as choosed'
exec(@sql)
/*
choosed
--------------------
chinese_one
*/
declare @i int
set @i=2; --如果是1就是选第一个变量
declare @sql varchar(300)
set @sql='
declare @charname1 varchar(20)
set @charname1 =''chinese_one''
declare @charname2 varchar(20)
set @charname2 =''chinese_two''
declare @charname3 varchar(20)
set @charname3 =''chinese_three''
select @charname'+cast(@i as varchar(6))+' as choosed'
exec(@sql)
/*
choosed
--------------------
chinese_two
*/
declare @charname1 varchar(20)
set @charname1 ='我是第一個變量'
declare @charname2 varchar(20)
set @charname2 ='我是第二個變量'
declare @charname3 varchar(20)
set @charname3 ='我是第三個變量'
declare @c_name varchar(20)
set @c_name='charname3'; --如果是1就是选第一个变量
declare @sql varchar(300)
set @sql='
declare @charname1 varchar(20)
declare @charname2 varchar(20)
declare @charname3 varchar(20)
set @charname1='''+@charname1+'''
set @charname2='''+@charname2+'''
set @charname3='''+@charname3+'''
select @'+@c_name+' as 所选變量'
exec(@sql)
declare @charname1 varchar(20)
set @charname1 ='我是第一個變量'
declare @charname2 varchar(20)
set @charname2 ='我是第二個變量'
declare @charname3 varchar(20)
set @charname3 ='我是第三個變量'
declare @c_name varchar(20)
set @c_name='charname3'; --如果是1就是选第一个变量
declare @sql varchar(300)
set @sql='
select @'+@c_name+' as 所选變量'
exec(@sql)
訊息 137,層級 15,狀態 2,行 2
必須宣告純量變數 "@charname3"。
declare @CHARNAME1 varchar(50)
set @charname1 = '我是第1個變量'
declare @CHARNAME2 varchar(50)
set @charname2 = '我是第2個變量'
declare @CHARNAME3 varchar(50)
set @charname3 = '我是第3個變量'
declare @t table(id int,C_name varchar(10))
insert @t
select 1,'CHARNAME1' union all
select 2,'CHARNAME2' union all
select 3,'CHARNAME3'
select * ,case C_name when 'CHARNAME1' then @charname1
when 'CHARNAME2' then @charname2
when 'CHARNAME3' then @charname3 end
from @t
id C_name
----------- ---------- --------------------------------------------------
1 CHARNAME1 我是第1個變量
2 CHARNAME2 我是第2個變量
3 CHARNAME3 我是第3個變量
declare @i int
set @i=1; --如果是1就是选第一个变量
declare @sql varchar(300)
set @sql='
declare @charname1 varchar(20)
set @charname1 =''我是第一個變量''
declare @charname2 varchar(20)
set @charname2 =''我是第二個變量''
declare @charname3 varchar(20)
set @charname3 =''我是第三個變量''
select @charname'+cast(@i as varchar(6))+' as 所选變量'
exec(@sql)
select top 1 case pmc_kb when pmc_Cb then '我是第一個變量'
when pmc_Kb then '我是第二個變量'
when pmc_Xb then '我是第三個變量' end as C from wko_epmc
--定义变量
declare @CHARNAME1 nvarchar(30),@CHARNAME2 nvarchar(30),@CHARNAME3 nvarchar(30),@C_name nvarchar(30)
--设定变量的值
select @CHARNAME1='我是第一個變量', @CHARNAME2='我是第二個變量', @CHARNAME3='我是第三個變量',@C_name='CHARNAME1'
select case @C_name when 'CHARNAME1' then @CHARNAME1
when 'CHARNAME2' then @CHARNAME2
when 'CHARNAME3' then @CHARNAME3 end