sql字符串分割split函数

sql字符串分割split函数

使用指定的字符分割字符串。

思路:1,先计算出指定的分割字符在字符串中的索引,

2.然后再分割字符串。

sql代码如下:

declare @strorder nvarchar(200)
declare @ismulorder int
declare @firstOrder nvarchar(200)
declare @secondOrder nvarchar(200)

set @strorder='LastModifyDate Desc,OurPrice Asc'

select CHARINDEX(',',@strorder,0)
--select LEN(@strorder)
--select SUBSTRING(@strorder,0,CHARINDEX(',',@strorder,0))
--select SUBSTRING(@strorder,CHARINDEX(',',@strorder,0)+1,LEN(@strorder))
set @ismulorder=CHARINDEX(',',@strorder,0)
if @ismulorder>0 
begin
set @firstOrder ='p.'+SUBSTRING(@strorder,0,CHARINDEX(',',@strorder,0))
set @secondOrder='p.'+SUBSTRING(@strorder,CHARINDEX(',',@strorder,0)+1,LEN(@strorder))
set @strorder=@firstOrder+','+@secondOrder
end

select @strorder

利用split函数

create function [dbo].[split]
(
@SourceSql varchar(8000),
@StrSeprate varchar(10)
)
returns @temp table(F1 varchar(100))
as
begin
    declare @i int
    set @SourceSql = rtrim(ltrim(@SourceSql))
    set @i = charindex(@StrSeprate,@SourceSql)
    while @i >= 1
    begin
        if len(left(@SourceSql,@i-1))>0
        begin
            insert @temp values(left(@SourceSql,@i-1))
        end
        set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
        set @i=charindex(@StrSeprate,@SourceSql)
    end
    if @SourceSql <> ''
        insert @temp values(@SourceSql)
    return
end
 
select * from split(',,777,,11,,888,88,,1122,888,88,77,,00,,00',',')

时间: 2024-10-05 02:38:33

sql字符串分割split函数的相关文章

Sql字符串分组Split函数的两种实现方法

在给文章加自定义标签时,需要在存储过程中对输入的字符串按照","字符分割成一个字符数组.但是Sql中没有实现字符串分组的Split方法.因此就需要编写一个自定义的Split函数.我首先是使用表值函数的方法实现的字符串分组,但是在使用中感觉不是很方便.后来又在网上找到了一种使用两个标量函数,其中一个函数首先返回分割后字符数组的长度,另一个函数依次返回每个分割出的字符串.然后使用循环依次获取分割的字符. 表值函数实现Split方法 代码  Create FUNCTION [dbo].[Sp

SQL Server实现split函数分割字符串功能及用法示例_MsSql

本文实例讲述了SQL Server实现split函数分割字符串功能及用法.分享给大家供大家参考,具体如下: /* 函数名称:f_SplitToNvarchar 作用:实现split功能的函数 更新记录: 设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里 */ CREATE FUNCTION [dbo].[f_SplitToNvarchar] ( @SourceSql NVARCHAR(MAX),--源分隔字符串 @StrSeprate VARCHAR

SQL Server实现split函数分割字符串功能及用法示例

本文实例讲述了SQL Server实现split函数分割字符串功能及用法.分享给大家供大家参考,具体如下: /* 函数名称:f_SplitToNvarchar 作用:实现split功能的函数 更新记录: 设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里 */ CREATE FUNCTION [dbo].[f_SplitToNvarchar] ( @SourceSql NVARCHAR(MAX),--源分隔字符串 @StrSeprate VARCHAR

SQL中实现SPLIT函数几种方法总结(必看篇)_Mysql

例1 代码如下 create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10)) returns @temp table(a varchar(100)) --实现split功能 的函数 --date :2003-10-14 as begin declare @i int set @SourceSql=rtrim(ltrim(@SourceSql)) set @i=charindex(@StrSeprate,@Sou

sql 字符串替换处理函数

sql 字符串替换处理函数 create function dbo.regexreplace ( @source varchar(5000),    --原字符串 @regexp varchar(1000),    --正则表达式 @replace varchar(1000),   --替换值 @globalreplace bit = 0,   --是否是全局替换 @ignorecase bit = 0       --是否忽略大小? ) returns varchar(1000) as beg

asp.net中字符串切割split函数用法

语法 Split(expression[, delimiter[, count[, start]]]) Split 函数的语法有以下参数: expression 必选.字符串表达式,包含子字符串和分隔符.如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组. delimiter 可选.用于标识子字符串界限的字符.如果省略,使用空格 ("") 作为分隔符.如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素

php支持中文字符串分割的函数_php技巧

str_split不支持中文,利用mb_xx函数实现个 /** * Convert a string to an array * @param string $str * @param number $split_length * @return multitype:string */ function mb_str_split($str,$split_length=1,$charset="UTF-8"){ if(func_num_args()==1){ return preg_spl

SQL中实现SPLIT函数几种方法

例1  代码如下 复制代码 create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10)) returns @temp table(a varchar(100)) --实现split功能 的函数 --date    :2003-10-14 as begin     declare @i int     set @SourceSql=rtrim(ltrim(@SourceSql))     set @i=chari

SQL里实现Split函数

函数 /*---------------------实现split功能 的函数--ZZ 2007/04/01--只返回最后的一串*/ alter function F_Split( @SourceSql varchar(8000),--字符串 @StrSeprate varchar(10)--分隔符)returns  varchar(1000)as begin    declare @i int    set @SourceSql=rtrim(ltrim(@SourceSql))