一、查询结果使用,字符串拼接

declare @names nvarchar(1000)
declare @ParmDefinition nvarchar(1000)
declare @sqltext nvarchar(500)
set @sqltext=N'Select @names=isnull(@names + '','' , '''' ) + isnull(列名, '''' ) From 表名'
set @ParmDefinition = N'@names nvarchar(1000) OUTPUT';
exec sp_executesql
@sqltext,
@ParmDefinition,
@names=@names OUTPUT
select @names as Res

二、SQL函数 获取“,”字符串长度

Create function [dbo].[GetSplitLength]
(
@String nvarchar(max), --要分割的字符串
@Split nvarchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int set @String=ltrim(rtrim(@String))
set @location=charindex(@split,@String)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@String,@start)
set @length=@length+1
end
return @length
end

三、SQL函数  遍历“,”拼接的字符串

create function [dbo].[GetSplitOfIndex]
(
@String nvarchar(max), --要分割的字符串
@split nvarchar(10), --分隔符号
@index int --取第几个元素
)
returns nvarchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int set @String=ltrim(rtrim(@String))
set @start=1
set @next=1
set @seed=len(@split) set @location=charindex(@split,@String)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@String,@start)
set @next=@next+1
end
if @location =0 select @location =len(@String)+1 return substring(@String,@start,@location-@start)
end

四、FOR XML PATH 使用 

SELECT 列名+',' FROM 表名 FOR XML PATH('')

https://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

五、IN 参数查询

create   function   [dbo].[f_split](@c   varchar(2000),@split   varchar(2))   

returns   @t   table(col   varchar(20))   

as   

    begin     

      while(charindex(@split,@c)<>0)   

        begin   

          insert   @t(col)   values   (substring(@c,1,charindex(@split,@c)-1))   

          set   @c   =   stuff(@c,1,charindex(@split,@c),'')   

        end   

      insert   @t(col)   values   (@c)   

      return   

    end

这样就可以直接使用IN来查询了 查询语句如下:

select schoolname  from school_info where code in(select col from [dbo].[f_split](@area,','))

最新文章

  1. linux c 笔记-4 工程项目阅读推荐
  2. _.属性和self.属性,我遇到的那些坑
  3. Qt 环境下的mapx控件-------2
  4. (转)Android消息处理机制(Handler、Looper、MessageQueue与Message)
  5. 《第一本docker书》第4章 使用docker镜像和仓库 读书笔记
  6. Hierarchical Token Bucket
  7. svn: Can&#39;t convert string from &#39;UTF-8&#39; to native encoding 的解决办法
  8. 如何清除win7开机密码
  9. C语言之Static
  10. iOS中解析json多种方法
  11. python手记(11)
  12. sqlserver日志文件过大的处理方法
  13. Zencart批量删除无图片产品
  14. 【java】对象变成垃圾被垃圾回收器gc收回前执行的操作:Object类的protected void finalize() throws Throwable
  15. java unicode和字符串间的转换
  16. UML顺序图知识点介绍(Sequence Diagram)
  17. mvc 遇到的问题
  18. Unity3d-Particle System系统的学习(二)
  19. centos7 开启ftp服务
  20. [JS&amp;Jquery]实现页面表格中相同内容的行或列合并

热门文章

  1. Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块
  2. Python之路(第十三篇)time模块、random模块、string模块、验证码练习
  3. 原创:Spring整合junit测试框架(简易教程 基于myeclipse,不需要麻烦的导包)
  4. mysql8.0.4以后修改密码方式变更
  5. mysql如何查看自己数据库文件所在的位置
  6. 在vue中的点击事件怎么获取当前点击的元素
  7. javascript对象bind()方法兼容处理
  8. SQL判断如果一列值为null则取另一列值代替 isnull()
  9. [ASP.NET]static变量和viewstate的使用方法
  10. 使用EventLog Analyzer监控、管理及分析日志