sqlserver字符串分隔与拼接实例

sqlserver字符串分隔与拼接实例

ID:12618465

大小:171.00 KB

页数:5页

时间:2018-07-18

sqlserver字符串分隔与拼接实例_第1页
sqlserver字符串分隔与拼接实例_第2页
sqlserver字符串分隔与拼接实例_第3页
sqlserver字符串分隔与拼接实例_第4页
sqlserver字符串分隔与拼接实例_第5页
资源描述:

《sqlserver字符串分隔与拼接实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Sql字符串分隔与拼接示例题目:已知A,B两表基本数据如下:A表(BList是B表的BID集合,用逗号连接):B表:获得查询结果如下:我们的思路如下:创建一个函数,参数是IDList,由ID拼接的字符串,返回值是NameList,由Name拼接的字符串。调用该函数即可。详细的sql语句如下(附带建表及插入测试数据):createtableB(BIDvarchar(3)primarykey,BNamevarchar(20))insertintoB(BID,BName)values('001','蔬菜')inse

2、rtintoB(BID,BName)values('002','水果')insertintoB(BID,BName)values('003','牙膏')insertintoB(BID,BName)values('004','洗发水')createtableA(AIDint,BListvarchar(4000))--BList是由BID用逗号连接组成的字符串insertintoA(AID,BList)values(1,'001,002')insertintoA(AID,BList)values(2,'001')

3、insertintoA(AID,BList)values(3,'002,003')insertintoA(AID,BList)values(4,'002')insertintoA(AID,BList)values(5,'001,002,003')insertintoA(AID,BList)values(6,'002,004')insertintoA(AID,BList)values(7,'001,002,003,004')--我们创建一个函数Func_GetNameList。createfunctionFun

4、c_GetNameList(@IdListvarchar(4000))--由逗号拼接001,002,003组成的字符串转换为Name组成的字符串即蔬菜,水果,牙膏returnsnvarchar(4000)AsBegindeclare@resultStrnvarchar(4000)set@resultStr=''declare@Indexintset@Index=charindex(',',@IdList)if@IndexisnullOR@Index=0--如果不存在逗号(只有一个或者为null)beginse

5、lect@resultStr=BNamefromBwhereBID=@IdListreturn@resultStrenddeclare@BIDvarchar(3)while@Index>0beginset@BID=substring(@IdList,1,@Index-1)if(@resultStr='')select@resultStr=BNamefromBwhereBID=@BIDelseselect@resultStr=@resultStr+','+BNamefromBwhereBID=@BIDset@I

6、dList=stuff(@IdList,1,@Index,'')--删除第一个逗号前面的字符串set@Index=charindex(',',@IdList)if(@Index=0)--如果是最后一个beginselect@resultStr=@resultStr+','+BNamefromBwhereBID=@IdListbreak;endendreturn@resultStrEnd--查询Sql语句如下:selectAID,dbo.Func_GetNameList(BList)asBListNamefro

7、mA附加一:使用部分字符串函数charindex、stuff的用法·CHARINDEX()函数charindex('要搜索的字符串','列名或整体全部字符串',查询起始索引)注:sqlserver中索引从1开始例如:printcharindex('abc','dfsaabc')--存在所以返回值为5(abc中的a在dfsaabc里的下标)charindex函数的第一个参数不能是null而且必须是以下类型:char/varchar、nchar/nvarchar和binary/varbinary。charinde

8、x函数的第二个参数可以是null,但结果返回null当第二个参数不是null时。判断第一个字符串是否在第二个字符串中存在,如果存在,返回第一个字符串的第一个字符在第二个字符串中的下标(下标从1开始),不存在返回0charindex函数的第三个参数可以忽略此时按从第一个字符开始查询匹配后的索引。charindex函数的第三个参数为null时返回nullcharindex函数的第三个参数为负整数或0时此

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。