我在存储过程中有一个select查询,它将列列表作为参数。将列列表作为参数传递使用引号''
。我想在将其传递给查询时删除引号。
如何使用SQL查询删除动态列列表的单引号?
例如表格是:
id string value
1 ttt 111
2 ggg 222
存储过程:
--Exec sp_dc 'id,String'
alter proc sp_dc
(
@Col_list nvarchar(255)
)
as
begin
select Replace(@Col_list, '''', '') from table
end
当我执行以下查询时:
Exec sp_dc 'id,String'
我应该得到结果:
id string
1 ttt
2 ggg
答案 0 :(得分:1)
使用replace
功能:
DECLARE @s VARCHAR(100) = '''col1'', ''col2'''
SELECT @s
SELECT REPLACE(@s, '''', '')
这应该在您的存储过程中:
DECLARE @sql NVARCHAR(MAX) = 'SELECT ' + Replace(@Col_list, '''', '') + ' FROM table'
EXEC(@sql)