PCB MS SQL 将字符串分割,并指定索引返回字符串(标量函数)
2024-08-24 17:19:02
Create FUNCTION [dbo].[SplitIndex]
(
@str AS VARCHAR(max),
@Index AS INT,
@SplitChar AS VARCHAR(10) = '/'
)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @ReturnStr varchar(50) --待分拆的字符串
DECLARE @tab TABLE(id int IDENTITY(1,1), col varchar(max)) --建立临时表保存分割后的字符
DECLARE @splitlen INT
SET @splitlen = LEN(@SplitChar+'a')-2
WHILE CHARINDEX(@SplitChar,@str)>0
BEGIN
INSERT @tab VALUES(LEFT(@str,CHARINDEX(@SplitChar,@str)-1))
SET @str = STUFF(@str,1,CHARINDEX(@SplitChar,@str)+@splitlen,'')
END
INSERT @tab VALUES(@str)
SELECT @ReturnStr = col FROM @tab WHERE id = @Index
IF (@ReturnStr IS NULL)
BEGIN
SET @ReturnStr = ''
END
RETURN @ReturnStr
END
示例代码:
SELECT [dbo].[SplitIndex]('1.5oz/1.0oz',1,'/')
SELECT [dbo].[SplitIndex]('1.5oz/1.0oz',2,'/')
最新文章
- eclipse设置项目编码
- Android反编译工具的使用-Android Killer
- SQL合并多行查询到一行
- 《BI那点儿事》数据流转换——模糊分组转换
- js中的Bom对象模型
- docker中清理冗余的image,container
- Codeforces Round #363 (Div. 2) One Bomb
- HTML readyState 属性 iframe onreadystatechange事件
- POJ 2886Who Gets the Most Candies?(线段树)
- HTML5与CSS3权威指南.pdf6
- CastelWindsor Demo
- java加密算法入门(一)-算法概念及单向加密
- 理解SynchronizationContext,如何在Winform里面跨线程访问UI控件
- python服务端多进程压测工具
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之二 || 后端项目搭建
- js选中变色,不选中鼠标放上变色
- JQuery小知识
- C# winform三种方法判断文本框textBox内容是否为空
- Android多种格式的异步解压/压缩解决方案
- Python全栈之路----常用模块----time模块
热门文章
- 易买网之smartupload实现文件上传
- 4星|《JAC写给外贸公司老板的企管书》:善总结爱学习、有业绩的老外贸的经验谈
- [问题记录]-技术学习-RocketMQ-全球集群部署问题
- (转)分布式文件存储FastDFS(四)配置fastdfs-apache-module
- What is the difference between Gradle Build and Gradle Sync?
- python基础--字符串操作、列表、元组、文件操作
- ngFor 循环带索引
- Win32 线程同步
- List多字段排序,orderBy,ThenBy
- js实现滚动条下拉到一定程度固定结算栏