动态SQL连接字符串

时间:2013-09-29 18:23:18

标签: sql sql-server

请参阅下面的SQL:

declare @TableName VarChar(100)
declare @field1 varchar(100)
declare @field2 varchar(100)
set @TableName = 'Person.Person'
set @field1  = 'LastName'
set @field2  = 'FirstName'
Declare @SQL VarChar(1000) SELECT @SQL = 'SELECT ' + @field1 + ',' + @field2 + ' FROM '
 SELECT @SQL = @SQL + @TableName 
 Exec ( @SQL) 

结果集显示在两列中,即firstname和surname。是否可以连接列,以便输出显示如下?

Ian,McFearce
Jane,McAndrew

我在这个网站上找到了一个引用:http://technet.microsoft.com/en-us/library/ms188001.aspx,其中指出:“不允许使用+运算符连接两个字符串”。因此我怀疑这是不可能的。有没有解决方法。

1 个答案:

答案 0 :(得分:2)

declare @TableName VarChar(100)
declare @field1 varchar(100)
declare @field2 varchar(100)
set @TableName = 'dbo.Person'
set @field1  = 'LastName'
set @field2  = 'FirstName'
Declare @SQL VarChar(1000) SELECT @SQL = 'SELECT ' + @field1 + '+'',''+' + @field2 + ' FROM '
 SELECT @SQL = @SQL + @TableName 
 print @sql
 Exec ( @SQL)