sql split函数二款实例

分割再成批插入

declare @s varchar(8000),@sql nvarchar(4000)
set @s='1,12,1212,4545'
set @sql='insert into t(col) select '+replace(@s,',',' col union all select ')
exec(@sql)

测试
drop table #table
declare @s varchar(8000),@sql nvarchar(4000)
set @s='1,12,1212,4545,454'
create table #table (col int)
set @sql='insert into #table(col) select '+replace(@s,',',' col union all select ')
exec(@sql)
select * from #table

create function f_split(@sourcesql varchar(8000),@strseprate varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
as
begin
declare @i int
set @sourcesql=rtrim(ltrim(@sourcesql))
set @i=charindex(@strseprate,@sourcesql)
while @i>=1
begin
insert @temp values(left(@sourcesql,@i-1))
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 dbo.f_split('abc:bc:c:d:e',':')

再看一个实例

create function [dbo].[split]
    (
      @str as nvarchar(1000) ,
      @delimiters as nvarchar(100)
    )
returns @t table
    (
      pos int not null ,
      value nvarchar(100) not null
    )
as
    begin
        declare @end int ,
    @start int ,
    @pos int ,
    @delino int ,
    @strchar nvarchar(1) ,
    @delimiter nvarchar(1)
  
        select @str=replace(@str,' ',' '),@delimiters=replace(@delimiters,' ',' ') 
        set @str = ltrim(rtrim(@str))+substring(@delimiters, 1, 1)
       
        select  @pos = 1,@start = 1,@end = 1
               
        while  @end <= len(@str) 
   begin 
    select  @strchar = substring(@str, @end, 1) ,
      @delino = 1
          
    while @delino <= len(@delimiters)
     begin               
      set @delimiter = substring(@delimiters, @delino, 1)
      if @strchar = @delimiter
       begin
        if substring(@str, @start, @end - @start) <> ''
         begin
          insert  into @t
          values  ( @pos,substring(@str, @start,@end - @start) )
          set @pos = @pos + 1
         end
        set @start = @end + 1
        break
       end
      set @delino = @delino + 1
     end
    set @end = @end + 1
   end
        return
    end
go

时间: 2024-07-30 17:35:36

sql split函数二款实例的相关文章

jquery读取json文件二款实例代码(1/2)

文章为你免费提供二款jquery读取网页特效on文件二款实例代码,这些代码非常实用哦 json文件: [ { "name":"xujun", "sex":"男", "home":"nanjing" }, { "name":"jack", "sex":"男", "home":"be

php Mysqli预处理语句二款实例代码

php教程 mysql教程i预处理语句二款实例代码 <?php /*=========================mysqli_stmt预处理类(推荐使用)=========================*/ /*===============================优点:效率高,安全================================*/  $mysqli=new mysqli("localhost","root","12

android 回调函数二:应用实例

前言:如果对android回调的概念不明白的请看:android 回调函数一:基本概念 1.定义接口 package com.app.util; public interface ZYJCallBack { public void dataResult( String resultString ) ; public void progress( Integer progress ) ; public void start() ; } 2.实体 package com.app.util; impo

二款实例Jquery tab选项卡效果代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-

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

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

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 Server函数全解&lt;二&gt;数学函数

原文:Sql Server函数全解<二>数学函数   数学函数主要用来处理数值数据,主要的数学函数有:绝对值函数,三角函数(包括正弦函数,余弦函数,正切函数,余切函数).对数函数,随机函数等.在错误产生时,数学函数将返回空值null.本次介绍各种数学函数的功能和用法. 1.绝对值函数ABS(x)和返回圆周率的函数PI()  ABS(x)返回x的绝对值,PI()返回圆周率的值  eg: select ABS(2),ABS(-3.3),ABS(-33),PI(); 正数的绝对值是其本身,2的绝对值