SQL Server 数据库字符串分割函数
SQL Server 数据库字符串分割函数,源代码如下:
ALTER FUNCTION [dbo].[f_split]
(
@SourceStr VARCHAR(MAX), -- 源字符串
@SplitStr VARCHAR(100) -- 分割字符串
)
RETURNS @result TABLE (a VARCHAR(1000))
AS
BEGIN
DECLARE @i INT
SET @SourceStr = RTRIM(LTRIM(@SourceStr))
SET @i = CHARINDEX(@SplitStr, @SourceStr)
-- 循环处理字符串
WHILE @i >= 1
BEGIN
-- 添加至结果数据表
IF LEN(LEFT(@SourceStr, @i - 1)) > 0
BEGIN
INSERT INTO @result(a)
VALUES (LEFT(@SourceStr, @i - 1))
END
-- 重新设置新数据
SET @SourceStr = SUBSTRING(@SourceStr, @i + 1, LEN(@SourceStr)-@i)
SET @i = CHARINDEX(@SplitStr, @SourceStr)
-- 解决最后一个遗漏问题
IF @i <= 0 AND LEN(@SourceStr) > 1
BEGIN
INSERT INTO @result(a)
VALUES (@SourceStr)
END
END
RETURN
END
调用方式:
DECLARE @SourceStr VARCHAR(MAX) = '+103+105+107-+3+'
SELECT *
FROM [MetaData].[dbo].f_split(@SourceStr, '+')
输出结果:
a
---
103
105
107-
3
SQL Server 数据库字符串分割函数的更多相关文章
- SQL Server自定义字符串分割函数——Split
我相信大部分人都碰到过,处理数据的时候,字段的值是以 ',' (逗号)分隔的形式,所以我也不能避免. 然后我才知道,sql 是没有类似于 C# 和 Javascript 这种分割字符串的方法.( Sp ...
- SQL Server 自定义字符串分割函数
一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果(标量值函数) create function Func_StrArrayL ...
- sql server 数据字符串替换函数
sql server 替换函数 replace 函数参数 REPLACE(string_expression, string_pattern, string_replacement) 1.string ...
- MSSQLSERVER数据库- 字符串分割函数返回类型表
遇到这样一个问题,存储在数据库的数据是一串字符串如:1,2,3,4,5,6.想把这串字符串进行转变成一个表格,如下: 1 2 3 4 5 6 就是这样一个问题,有人同事,写了一个这样的封装函数,这样就 ...
- sql server数据库中raiserror函数的用法
server数据库中raiserror的作用就和asp.NET中的throw new Exception一样,用于抛出一个异常或错误.这个错误可以被程序捕捉到. raiserror的常用格式如下:ra ...
- sql server 将字符串分割成表函数 strsplitetotable
在sql server里,调用存储过程时,经常需要将数据拼成字符串做为参数调用存储过程,而在储存过程中分割字符串虽然简单但麻烦,封装了该函数,可以将拼串分割成内存表返回,方便使用,返回的表字段从a,b ...
- [转]sql server 数据库日期格式化函数
转至:http://www.cnblogs.com/hantianwei/archive/2009/12/03/1616148.html 0 或 100 (*) 默认值 mon ...
- c#连接sql server数据库字符串
第一种方式 Data Source=数据库地址;Initial Catalog=数据库名称;User Id=数据库登录名;Password=数据库密码;[Integrated Security=SSP ...
- sql server数据字符串分割功能sql
--分割字符串函数 create FUNCTION [dbo].[GetSplitStringValueInIndex] ( ), --要分割的字符串 ), --分隔符号 @index INT --取 ...
- [转]在Sql Server中将字符串分割成表格数据示例
本文转自:http://www.lmwlove.com/ac/ID718 比如我们有一个字符串 ) select @appName ='UserID=admin,Account=ABC' 然后我们要以 ...
随机推荐
- mysql+proxysql+replication-manager的主从半同步复制+高可用+读写分离
环境: AlmaLinux release 9.1 MySQL Community Server Ver 8.0.33 Replication Manager v2.2.40 for MariaDB ...
- HDCTF_2023
pwnner 附件 有后门函数,seed是一个固定值, //伪随机数 #include <stdio.h> #include <stdlib.h> int main() { i ...
- ASP.NET Core设置URLs的几种方法,完美解决.NET 6项目局域网IP地址远程无法访问的问题
近期在dotnet项目中遇到这样的问题:.net6 运行以后无法通过局域网IP地址远程访问.后查阅官方文档.整理出解决问题的五种方式方法,通过新建一个新的WebApi项目演示如下: 说明 操作系统:U ...
- Vue项目使用Echarts来实现中国地图,省份显示
当时做的时候参考了CSND博主:接口写好了吗 第一步:下载echarts npm install echarts --save main.js中引入 import * as echarts fr ...
- Vue实战案例
Vue项目案例 结合之前学习的 vue.js.脚手架.vuex.vue-router.axios.elementui 等知识点,来开发前端项目案例(仅前端不含后端). 1.项目搭建 其实就是将我们项目 ...
- [Flink] Flink Job运行状态正常,但日志中偶报“FlinkException: The file LOG does not exist on the TaskExecutor.”
0 序言 Flink : 1.12 job start running time : 2022-12-27 17:40:47 problem throw time : 2023-05-11 16:41 ...
- Java设计模式简介(总结)
Java设计模式简介(总结) 什么是设计模式 Java设计模式是一组经过验证的解决特定问题的编程技术,这些技术可以帮助开发人员快速.有效地开发高质量的软件.使用设计模式是为了可重用代码.让代码更容易被 ...
- 2022-05-26:void add(int L, int R, int C)代表在arr[L...R]上每个数加C, int get(int L, int R)代表查询arr[L...R]上的累加
2022-05-26:void add(int L, int R, int C)代表在arr[L-R]上每个数加C, int get(int L, int R)代表查询arr[L-R]上的累加和, 假 ...
- 2022-05-08:给你一个下标从 0 开始的字符串数组 words 。每个字符串都只包含 小写英文字母 。words 中任意一个子串中,每个字母都至多只出现一次。 如果通过以下操作之一,我们可以
2022-05-08:给你一个下标从 0 开始的字符串数组 words .每个字符串都只包含 小写英文字母 .words 中任意一个子串中,每个字母都至多只出现一次. 如果通过以下操作之一,我们可以从 ...
- 2021-02-18:给定一个字符串str,给定一个字符串类型的数组arr,出现的字符都是小写英文。arr每一个字符串,代表一张贴纸,你可以把单个字符剪开使用,目的是拼出str来。返回需要至少多少张贴纸可以完成这个任务。例子:str= "babac",arr = {"ba","c","abcd"}。a + ba + c 3 abcd + abcd 2 abcd+ba 2。所以返回2。
2021-02-18:给定一个字符串str,给定一个字符串类型的数组arr,出现的字符都是小写英文.arr每一个字符串,代表一张贴纸,你可以把单个字符剪开使用,目的是拼出str来.返回需要至少多少张贴 ...