自定义SQL函数 实现SPlit字符截取功能
2016-01-22 00:00
405 查看
摘要: 自定义SQL函数 实现SPlit字符截取功能
CREATE FUNCTION [dbo].[SplitString]
(
@Expression nvarchar(4000),--要拆分的字符串
@splitchar nvarchar (100),--拆分字符
@n int --要得到已拆分的返回字符串的位置
)
RETURNS nvarchar(4000)
AS
BEGIN
-- Declare the return variable here
DECLARE @p int
set @p=CHARINDEX(@splitchar,@Expression)
if @p>0
begin
set @p=@p+LEN(@splitchar)-1
end
declare @i int
set @i=1
while @i<@n
begin
set @i=@i+1
set @Expression=SUBSTRING(@Expression,@p+1,LEN(@Expression)-@p)
set @p=CHARINDEX(@splitchar,@Expression)
if @p>0
begin
set @p=@p+LEN(@splitchar)-1
end
else
begin
break
end
end
declare @s Nvarchar(1000)
if @p=0 AND @i=@n
begin
set @s=@Expression
end
else
if @i=@n
begin
set @s=SUBSTRING(@Expression,1,@p-LEN(@splitchar))
end return @s
end
-- Add the T-SQL statements to compute the return value here
GO
函数的引用:
CREATE FUNCTION [dbo].[SplitString]
(
@Expression nvarchar(4000),--要拆分的字符串
@splitchar nvarchar (100),--拆分字符
@n int --要得到已拆分的返回字符串的位置
)
RETURNS nvarchar(4000)
AS
BEGIN
-- Declare the return variable here
DECLARE @p int
set @p=CHARINDEX(@splitchar,@Expression)
if @p>0
begin
set @p=@p+LEN(@splitchar)-1
end
declare @i int
set @i=1
while @i<@n
begin
set @i=@i+1
set @Expression=SUBSTRING(@Expression,@p+1,LEN(@Expression)-@p)
set @p=CHARINDEX(@splitchar,@Expression)
if @p>0
begin
set @p=@p+LEN(@splitchar)-1
end
else
begin
break
end
end
declare @s Nvarchar(1000)
if @p=0 AND @i=@n
begin
set @s=@Expression
end
else
if @i=@n
begin
set @s=SUBSTRING(@Expression,1,@p-LEN(@splitchar))
end return @s
end
-- Add the T-SQL statements to compute the return value here
GO
函数的引用:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/17/a279e2a33adaf3c1838df26d07d64946.png)
相关文章推荐
- Oracle数据操作之默认0为' '
- 十步完全理解SQL
- 使用TRY CATCH进行SQL Server异常处理
- mysql 用一个表的一列,去更新另一表的一列
- 使用python操作Memcache、Redis、RabbitMQ、
- 使用Navicat远程管理OpenShift的数据库
- SQL表连接和JDBC初步
- MySQL数据库的优化 【转】
- ORACLE+RAC+ASM环境下添加redo日志组
- MySQL 导出数据保存到文件中
- mysql mysqldump 命令导出指定表的数据
- oracle insert用法总结
- 同一台MySQL服务器启动多个端口
- Oracle sql文件转换成mysql sql文件
- 7.Oracle深度学习笔记——内存架构之SGA Buffer Cache
- 6.Oracle深度学习笔记——内存架构之SGA 概述
- 5.Oracle深度学习笔记——内存架构之PGA SQL Work 区
- Mycat学习笔记 番外篇一.客户端使用latin1字符集,后端MySQL为UTF8字符集,MyCat日志分析。
- 4.Oracle深度学习笔记——内存架构之PGA Private SQL 区
- Mysql数据库优化---1.可以优化的地方