1,首先说一个函数STUFF,函数将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字符;然后将第二个字符串插入第一个字符串的开始位置。
ST(character_expression,start,length,character_expression )
character_expression:一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。
start :一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。start 可以是 bigint 类型。
length :一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。length 可以是 bigint 类型。
例如创建一个人员信息表
现在我想把年龄超过18岁的,串成一串输出来
select stuff((select name + N',' from TableA where age>18 for xml path('')),1,0,N'')+'的年龄超过岁'
2,还是用上面的例子,将年龄超过18岁的用动态语句输出来
declare @name varchar(max)
select @name= isnuLL(@name+',','')+name
from TableA where age>18
select @name+' 的年龄超过岁'