sqlserver 分割字符串和调用
传入某种规则拼接字符串获得数组(表)
/*
功能说明:传入字符串跟分割符('''SGHE00000003'',''SGHE00000004'',''SGHE00000005'''),返回一个Table
*/
ALTER FUNCTION [dbo].[fnSys_SplitString]
(
---字符串分割
@Str VARCHAR(MAX), --传入的字符串
@SeprateStr VARCHAR(10)--分隔符
)
RETURNS @temp TABLE(Code VARCHAR(100)) --返回一个Table
AS
BEGIN
DECLARE @i INT
SET @Str=REPLACE(@str,'''','')
SET @Str =RTRIM(LTRIM(@Str ))
SET @i=CHARINDEX(@SeprateStr,@Str )
WHILE @i>=1
BEGIN
INSERT @temp VALUES(LEFT(@Str ,@i-1))
SET @Str =SUBSTRING(@Str ,@i+1,LEN(@Str )-@i)
SET @i=CHARINDEX(@SeprateStr,@Str )
END
IF @Str <>''
INSERT @temp VALUES(@Str )
RETURN
END
使用此函数拓展方法调用
CREATE PROC WriteUnionIDByBatch
@UnionIDs VARCHAR(MAX),@OpenIDs VARCHAR(MAX),@CompanyID VARCHAR(50),@AccountID VARCHAR(50)
AS
BEGIN
DECLARE @unionID VARCHAR(50),@openid VARCHAR(50)
CREATE TABLE #OpenIDTable
(
openid VARCHAR(50),
unionid VARCHAR(50)
)
INSERT #OpenIDTable
SELECT oldopenid,newopenid FROM dbo.[fnSys_SplitString_ChangeOpenID](@OpenIDs,@UnionIDs,',')
DECLARE mycursor CURSOR FOR
SELECT openid,unionid FROM #OpenIDTable
OPEN mycursor
FETCH NEXT FROM mycursor INTO @openid,@unionID
WHILE @@FETCH_STATUS = 0
BEGIN
IF(ISNULL(@unionID,''))>''
BEGIN
UPDATE dbo.EWMS_Web_Member SET UnionID =@unionID WHERE CompanyID = @CompanyID AND AccountID = @AccountID
END
FETCH NEXT FROM mycursor INTO @openid,@unionID
END
CLOSE mycursor
DEALLOCATE mycursor
END
sqlserver 分割字符串和调用的更多相关文章
- SQLServer实现split分割字符串到列
网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题. 先贴上某大牛写的sp ...
- SQLSERVER中分割字符串成多列
今天修改到之前的大佬的代码,居然把多个Id存在一个列里面,还是用的逗号分割...特么查询的时候怎么办??? 网上搜索了半天,终于找到了SqlServer里面有一个PARSENAME函数,可以按.(点) ...
- sqlserver 拼接字符串分割
CREATE FUNCTION [dbo].[fnQuerySplit] ( @string VARCHAR(MAX) ,--待分割字符串 )--分割符 ) ) ) AS BEGIN DECLARE ...
- UDF_表值函数与标量函数的区别_分割字符串成单个的字符并返回表(插入到表中)
UDF_区别_分割字符串成单个的字符并返回表(插入到表中) /* SQL表值函数和标量值函数的区别 实验环境:SQL Server 2014,参考maomao365有改编 在sqlserver中存储过 ...
- lua string的自定义分割字符串接口
-------------------------------------------------------------------- -- Create By SunC 2014/7/1 -- ...
- Java开发笔记(三十七)利用正则串分割字符串
前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...
- SQL Server中自定义函数:用指定的分隔符号分割字符串
微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期.数学.元数据.字符串等. 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用. 但是对 ...
- C++ 分割字符串两种方法
原文地址:http://blog.csdn.net/xjw532881071/article/details/49154911 字符串切割的使用频率还是挺高的,string本身没有提供切割的方法,但可 ...
- String.split()分割字符串方法
split方法的主要用处就是:分割字符串 split方法返回的是数组类型 主要由以下几种用法: 1.比如有一个字符串var str = "bcadeab";对str使用split方 ...
随机推荐
- lombok踩坑与思考
虽然接触到lombok已经有很长时间,但是大量使用lombok以减少代码编写还是在新团队编写新代码维护老代码中遇到的. 我个人并不主张使用lombok,其带来的代价足以抵消其便利,但是由于团队编码风格 ...
- 关于如何登陆oracle 18c pdb 的问题
server 上输入 sqlplus username/password@lP:port/service name 登陆提示 no listener 的时候, 在另外一台机器上 直接连接 哈哈哈.. ...
- 2017.2.6Redis连接问题排查
现象:早8:15起开始收到redis主从不停切换的报警短信,某系统连接流控redis报超时. 排查:1.查看zabbix,看流控系统的redis服务器是否正常——正常: 2.查看redis监控,red ...
- API权限设计总结
最近在做API的权限设计这一块,做一次权限设计的总结. 1. 假设我们需要访问的API接口是这样的:http://xxxx.com/openapi/v1/get/user/?key=xxxxx& ...
- Maven模块化开发
Maven模块化开发 多人协同开发时,特别是规模较大的项目,为方便日后代码维护管理会将每个人的工作细分到具体的功能和模块上.随着项目的不断扩大,模块会越来越多,后续更加难以维护和扩展,为应对这种情况后 ...
- 128bit 整数运算的实现
对于128bit的长整型运算,GCC提供了扩展类型:__int128.然而该类型不在C/C++语言的标准之中,并且对于不同种类的编译器,它的实现情况不同.因此,在编写相关的可移植程序时,我们有必要实现 ...
- CodeWarrior 10 自定义关键字模版
==============================================版本信息开始============================================ 相关作 ...
- springboot项目js文件404
如果检查路径没有问题,其他的js都可以引入,只有新改动的js报404的话,可以尝试重启IDE,并清除缓存.
- vim高级工能入门
一.多文件编辑 1.vim 1.txt 2.txt 3.txt同时打开3个文件在vim缓冲区, 命令模式下输入:n 切换到下一个文件,可以加!:n! 强制切换,之前那个没有保存,仅仅是切换. ...
- UVA 679 二叉树
题目链接:https://vjudge.net/problem/UVA-679 参考自:刘汝佳的紫书 思路: 我们发现,对于每一颗子树,假如小球是第奇数次到达这颗子树的根节点时,那么此时应该向左子树走 ...