你想要像这样获得字符串'Username,Surname,Name' '用户名', '姓', '姓名'
我试试这个
DECLARE @Header varchar(MAX)
SELECT @Header= 'Username,Surname,Name'
SELECT @Header = replace(@Header,',',''',''')
SELECT @Header = ''+@Header+''
SELECT * from myTable where field in ($header)
结果应该是“用户名”,“姓氏”,“姓名”
但我不知道为什么它什么都没显示 抱歉我的英语不好。
答案 0 :(得分:0)
以下内容应该有效:
DECLARE @Header varchar(MAX)
DECLARE @sqlstmt varchar(MAX)
SET @Header= 'Username,Surname,Name'
SET @Header = replace(@Header,',',''',''')
SET @Header = ''''+@Header+''''
SET @sqlstmt = 'SELECT * from myTable where field in ('+@header+')'
exec (@sqlstmt)
答案 1 :(得分:0)
我怀疑这可能是XY problem。
你有什么理由不能使用以下内容吗?
SELECT *
FROM myTable
WHERE field IN ( '''Username''', '''Surname''', '''Name''' );
这将返回myTable
中field
的值为以下值之一的所有行的所有列:
'Username'
'Surname'
'Name'
请注意,要转义字符串文字中的单引号,只需使用''
即可。因此,包含单个引号的文字将为''''
。