sqlserver 字符串拆分和取某分隔符之前的字符串
ALTER FUNCTION [dbo].[f_splitSTR](
@s varchar(8000), --待分拆的字符串
@split varchar(10) --数据分隔符
)RETURNS @re TABLE(
col varchar(max))
AS
BEGIN
DECLARE
@splitlen int -- 取分隔符的长度, 在分隔符后面加一个字符是为了避免分隔符以空格结束时, 取不到正确的长度
SET @splitlen = LEN(@split + 'a') - 2
-- 如果待分拆的字符串中存在数据分隔符, 则循环取出每个数据项
WHILE CHARINDEX(@split, @s)>0
BEGIN
-- 取第一个数据分隔符前的数据项
INSERT @re VALUES(LEFT(@s, CHARINDEX(@split, @s) - 1)) -- 将已经取出的第一个数据项和数据分隔符从待分拆的字符串中去掉
SET @s = STUFF(@s, 1, CHARINDEX(@split, @s) + @splitlen, '')
END -- 保存最后一个数据项(最后一个数据项后面没有数据分隔符, 故在前面的循环中不会被处理)
INSERT @re VALUES(@s)
RETURN
end
例子:

原文忘记了出处。
取某分隔符之前的字符串(自己写的函数,希望多多交流)
create FUNCTION [dbo].[fn_leftFirst]
(
@source nvarchar(max), @split nvarchar(1000)
)
RETURNS nvarchar(max)
AS
BEGIN
if(CHARINDEX(@split, @source)>0)BEGIN
return left(@source,CHARINDEX(@split, @source)-LEN(@split)+1)
END
return @source
END
20180809:字符串分隔方法二
今日写sql语句时提示有SplitString函数,查了一下用法,值得推荐
select * from SplitString('待拆分的字符串','分隔符',返回值是否包含空串(bit))
示例:
select * from SplitString('201,202,203,3109,3179,3638,4384,4447,4462,3012',',',1)

sqlserver 字符串拆分和取某分隔符之前的字符串的更多相关文章
- Clickhouse 字符串拆分 OR 一行转多行
Clickhouse 字符串拆分 OR 一行转多行 我想把 '123_456_142354_23543' 通过'_' 下划线进行拆分成
- (转自aierong原创技术随笔)sqlserver字符串拆分(split)方法汇总
sqlserver字符串拆分(split)方法汇总 --方法0:动态SQL法declare @s varchar(100),@sql varchar(1000)set @s='1,2,3,4,5, ...
- 【转】sqlserver字符串拆分(split)方法汇总
Java..net等开发工具具有split功能,最近在Sqlserver中碰到这个需求. 方法1:动态SQL法 ),) set @string='1,2,3,4,5,6,7,8,9,10' set @ ...
- 单列表变量与字符串拆分的对照(SqlServer)
最近遇到一个问题,在SQLServer中,需要根据用户传入的一系列ID值更新对应的记录.有两种方法,一种是将这些ID值使用逗号分隔,拼接成字符串传入,一种是以表变量的方式传入.最开始,我想当然的认为传 ...
- sqlserver字符串拆分(split)方法汇总
--方法0:动态SQL法declare @s varchar(100),@sql varchar(1000)set @s='1,2,3,4,5,6,7,8,9,10'set @sql='select ...
- sqlserver字符串拆分函数
CREATE FUNCTION f_splitSTR(@s varchar(8000), --待分拆的字符串@split varchar(10) --数据分隔符)RETURNS @re TABLE(c ...
- SQL2000/2005字符串拆分为列表通用函数
------------------------------------------------------------------ -- Author : htl258(Tony) -- Dat ...
- sh_19_字符串拆分和拼接
sh_19_字符串拆分和拼接 # 假设:以下内容是从网络上抓取的 # 要求: # 1. 将字符串中的空白字符全部去掉 # 2. 再使用 " " 作为分隔符,拼接成一个整齐的字符串 ...
- mysql字符串拆分实现split功能
转自:https://blog.csdn.net/pjymyself/article/details/81668157有分隔符的字符串拆分题目要求数据库中 num字段值为: 实现的效果:需要将一行数据 ...
随机推荐
- tomcat 启动超级慢
今天在新环境里部署tomcat, 刚开始启动很快,关闭之后再启动,却发现启动日志打印到 00:25:14.144 [localhost-startStop-1] INFO o.s.web.conte ...
- linux date -d参数用法
最近偶为了写一个调整时间的shell而绞尽脑汁,结果在某一天#info data这里面看到了data -d参数的灵活用法,真是欣喜若狂.好东西要保存,整理整理: * To print the date ...
- C基本语句和运算符
1,逗号运算符
- 前端-jQuery的ajax方法
https://www.cnblogs.com/majj/p/9134922.html 0.什么是ajax AJAX = 异步的javascript和XML(Asynchronous Javascri ...
- eclipse使用ctrl+shift+F格式化代码失效
通常情况出现这种问题是组合快捷键和别的软件快捷键冲突了, 最常见的是和搜狗输入法冲突, 在设置中找到搜狗输入法然后把冲突的快捷键取消掉就可以了.
- ubuntu 安装u盘恢复
XP下进入CMD命令窗体,Vista及7/8下右键以管理员方式运行DOS窗体(win8.1:开始屏幕-windows系统-命令提示符) 输入DISKPART,会显示计算机名,及DISKPART> ...
- Haskell语言学习笔记(46)Parsec(3)
Applicative Parsing 使用 Applicative 式的 Parser. 包括使用 (<$>), (<*>), (<$), (<*), (*> ...
- session会话时间
session对象失效在下列情况下被删除: A.程序调用HttpSession.invalidate() B.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间 ...
- STS或eclipse安装SVN插件
安装sts--SVN插件 简介:sts是与eclipse类似的Java IDE开发工具(不了解的百度) 1.sts菜单栏 help->install New Software 依据大家的版本选择 ...
- Excel 2003-单元格输入中带记忆功能
最近有个同事问我,如何在Excel单元格输入中带记忆功能?其实很简单: 工具ó选项ó编辑ó将“记忆式键入”项选中ó确定: //附图[效果图]: