Mapping dynamic column names in sql server

匆匆过客 提交于 2019-12-12 01:41:13

问题


DECLARE @step VARCHAR(25) = '15';
DECLARE @COL VARCHAR(50) = step_col_@step;
UPDATE table_tblName SET @COL=<some value> WHERE <condition>

I have the above query where @COL is supposed to be dynamic i.e. step_col_1,step_col_2,step_col_3......step_col_18. How can I achieve this without If-else condition in sql server?


回答1:


Try the below query,

DECLARE @COL VARCHAR(50) = 'step_col_'+@step



回答2:


Pass the variables like this to form a dynamic sql query

DECLARE @step VARCHAR(25) = '15';
DECLARE @COL VARCHAR(50) = 'step_col_'+@step
exec ('UPDATE table_tblName SET '+@COL+'=<some value> WHERE <condition>')



回答3:


 DECLARE @step VARCHAR(25) = '15';
 DECLARE @COL VARCHAR(50) = 'step_col_'+@step;
 DECLARE @String VARCHAR(500) = ''
 SET @String = 'UPDATE table_tblName SET '''+@COL+''' = <some value> WHERE  
 <condition>' 
 EXEC (@String)



回答4:


DECLARE @step VARCHAR(25) = '15';
DECLARE @COL VARCHAR(50) 
SET @COL = 'step_col'+@step;

UPDATE table_tblName SET @COL=<some value> WHERE <condition>


来源:https://stackoverflow.com/questions/42624480/mapping-dynamic-column-names-in-sql-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!