Concat函数SQL具有可变的不同数量的值

时间:2016-06-21 16:24:17

标签: sql tsql

我有以下问题:

Declare @var nvarchar(100)
SET @var = 'ID,Name'

Declare @var2 nvarchar(100) 
SET @var2='ID'

select concat(@var) FROM Test
select concat(@var2) FROM Tes

我有一个select语句,其中我有一个变量,其中列是从表中获取的。这个查询实际上是在动态sql中,但是通过上面的例子你可以得到它。 我必须连接变量然后转换它。但我的问题是我不知道therae是变量中的一个值还是几个。当我尝试用一​​个值连接变量时,我收到错误。如果有多个值,我如何检查select语句,所以我知道我可以连接它?

1 个答案:

答案 0 :(得分:0)

呃,你已经定义了一个常量字符串,而不是列的列表。如果您需要列的列表,则需要使用var property1 = myArray[0].Property1; var myRow = DbContext.myTable.Single(d => d.Property1 == property1); ,最好使用exec

sp_executesql

注意:因为Declare @var nvarchar(100); set @var = 'ID,Name'; declare @sql nvarchar(max); set @sql = 'select concat(@cols) from test'; set @sql = replace(@sql, '@cols', @var); exec sp_executesql @sql; 至少需要两个参数,所以如果您希望它只在一列上工作,则可以包含一个空字符串:

concat()