Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
176 views
in Technique[技术] by (71.8m points)

tsql - SQL Server REPLACE()

If I have a dynamic query in SQL Server which contains a variable of column names first_name, last_name, ref_ID, order_ID, post_code_ID how can I replace the all of the values suffixed _ID with the same string for example look_up_value.

Desired output would be

first_name, last_name, look_up_value, look_up_value, look_up_value

Currently have SELECT REPLACE(@Var, '_ID', 'look_up_value') but that obviously leaves the prefix of the column.

Thanks

DECLARE @SQL NVARCHAR(MAX)
DECLARE @Fields NVARCHAR(MAX)      
DECLARE @Fields2 NVARCHAR(MAX)                         
DECLARE @Return NVARCHAR(MAX) = Char(13)                                        
                              
SET @Fields = ''

SELECT @Fields = @Fields + Column_name + ',' + @Return
FROM Orders.INFORMATION_SCHEMA.columns 
WHERE TABLE_NAME = 'Recent_Orders'

SELECT @Fields = LEFT(@Fields, (LEN(@Fields) - 2))

SELECT REPLACE(@Fields, '_ID', 'look_up_value')
question from:https://stackoverflow.com/questions/65873229/sql-server-replace

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
....    
SELECT @Fields = @Fields + case when Column_name like '%[_]ID' then 'look_up_value' else Column_name end + ',' + @Return
....

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...