SQL 支持两个分格符

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
USE [alisoft]
GO
/****** Object:  UserDefinedFunction [dbo].[split]    Script Date: 09/22/2011 08:49:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*

[调用]:
select * From split('12131:316631,44:5353,4322:323,443:333',',',':')
select * From split('12131,44,4322,443',',','')

[功能]:通过分格符区分
[详细逻辑]:
@source 源数据
@splits 第一个分格符
@splits2 第二个分格符
支持第二个分格符为空

[作者]:XLP
[版本号]:v1.0
[最后修改时间]:2011-09-22
[历史修改记录]
-------------------
修改人:
修改原因:
修改内容:
-------------------
*/
ALTER FUNCTION [dbo].[split](
@source varchar(8000),--源数据
@splits varchar(100),--分格符
@splits2 varchar(100)--第二分格符
)    
RETURNS  @tmp TABLE(        
    ID int IDENTITY PRIMARY KEY, --自填列     
    short_str varchar(8000),
    short_str2 varchar(8000)
)    
AS   
BEGIN   
    DECLARE @source_Tmp varchar(8000),
   @short_str varchar(8000),
   @short_str1 varchar(8000),
   @short_str2 varchar(8000),
   @splits_length int   
 
    SET @splits_length = LEN(@splits)    
 
    IF CHARINDEX(@splits,@source)=1
         SET @source_Tmp=SUBSTRING(@source,@splits_length+1,LEN(@source)-@splits_length)
    ELSE
         SET @source_Tmp=@source
 
    IF CHARINDEX(REVERSE(@splits),REVERSE(@source_Tmp))>1    
        SET @source_Tmp=@source_Tmp+@splits    
    ELSE   
        SET @source_Tmp=@source_Tmp    
 
    WHILE CHARINDEX(@splits,@source_Tmp)>0    
        BEGIN   
            SET @short_str=SUBSTRING(@source_Tmp,1,CHARINDEX(@splits,@source_Tmp)-1)    
            DECLARE @source_Tmp_LEN INT,@splits_Position_END int   
            SET @source_Tmp_LEN = LEN(@source_Tmp)    
            SET @splits_Position_END = LEN(@short_str)+@splits_length    
            SET @source_Tmp=REVERSE(SUBSTRING(REVERSE(@source_Tmp),1,@source_Tmp_LEN-@splits_Position_END))
            IF CHARINDEX(@splits2,@short_str)>0
            begin
                 set @short_str1=SUBSTRING(@short_str,0,CHARINDEX(@splits2,@short_str))
                 set @short_str2=SUBSTRING(@short_str,CHARINDEX(@splits2,@short_str)+1,len(@short_str))
                 INSERT INTO @tmp SELECT @short_str1,@short_str2                                 
            end
            else
            begin
                 IF @short_str<>'' INSERT INTO @tmp SELECT @short_str ,''
            end
        END   
    RETURN     
END
医网联影像工作站标准版4.0(ProDicom Workstation 4.0)       医网联影像工作站标准版4.0(ProDicom Workstation 4.0)是医网联影像工作站3.0(ProDicom Workstation 3.0)版本的升级版,其中最大的改变是数据库的改变,医网联影像工作站标准版的数据库采用了常用的SQL2000数据库,数据库的存储性能大大提高,有助于联网、数据库共享,医网联影像工作站标准版是查看、处理DICOM图像的专业工具,支 阅读详情

相关推荐

Hive原理及SQL优化

1.Hive原理Hive是构建在Hadoop上的数据仓库软件框架,支持使用SQL来读,写和管理大规模数据集合。Hive入门非常简单,功能非常强大,所以非常流行。通常来说,Hive只支持数据...

AI天才研究院 9781

SQL SERVER 截取多个分隔符中指定第几个分隔符的前边的内容

       又是一个难懂的标题,上例子吧,比如一个字串,‘abc,1344,343,13as,33,343’,这个字串都是用','分隔的,现在想截取第四个逗号前边所有的内容,方法如下: CREATE FUNCTION [dbo].[Get_StrArrayStrOfIndex] ( @str VARCHAR(1024), --要分割的字串 @split VARCHAR(...

二月十六的博客 1万+

split方法可以实现同时使用多个分隔符劈开字串方法(分隔sql条件)

直接举个例子 例如这样的一段sql查询语句,要将它以and或者or号分隔 select[结果字段] from [表名] a where a.zyyx_status='1' and convert(varchar(100),[日期1],112)[条件]convert(varchar(100),[日期2],112) or convert(varchar(100),[日期3],112)[条件1]convert(varchar(100),[日期4],112) 一、分隔实现类 private stat.

fighting_xuan的博客 2251

SQL实现split函数,自定义分割字,自定义取出第几个分割字前的字

自定义取出第几个分割字前的字串,默认位置(0) 格式:dbo.split(字段名,'分隔字',取出的第几个字串) 如果没有分隔的字,则返回整个字串。 如果取出的位置字串的位置超出index则返回空。 create function [dbo].[split] (@str nvarchar(4000),@code varchar(10),@no int )  returns varc...

书写人生 1万+

sql中的多个不定分隔符split函数

/****** Description: select * from dbo.Split('100,200 300;400',', ;') return value is 4 rows table with values 100,200,300,400. ******/CREATE FUNCTION [dbo].[Split] ( @str AS NVARCHAR(10...

weixin_30412577的博客 768

sql——分号的运用

sql语句中的分号常用于语句的结尾,对于sql新手来说,如果没能很好掌握sql基本书写规则,就会在运行sql时报错或者出现错误结果。以下用1个例子说明分号位置写不对的后果: 1.创建表语句: CREATE TABLE Salaries (name VARCHAR(32) PRIMARY KEY, salary INTEGER NOT NULL); INSERT INTO Salaries VALUES('相田', 300000); INSERT INTO Salaries VALUES('神崎', .

weixin_41981793的博客 5429

06 Spark SQL 之 DataFrame

Spark SQL 之 DataFrame 文章目录Spark SQL 之 DataFrame1. 创建 DataFrame1.1 通过 `Spark` 的数据源创建1.2 通过已知的 `RDD` 来创建1.3 通过查询一个 `Hive` 表来创建2. DataFrame 语法风格2.1 SQL 语法风格2.2 DSL 语法风格2.3 RDD 和 DataFrame 的交互2.3.1 从 `RDD` 到 `DataFrame`2.3.2 从 DataFrame 到 RDD 1. 创建 DataFrame 1

朱古力的博客 188

sql查询相同数据 序号递增_MYSQL如何自动为查询数据的结果编上序号详解

前言其实自己之前没遇到过这种在查询时给结果编号的情况,是同事打算跳槽,面试回来问到这种情况才想到去研究,以下以单表查询为例分析下:SQL:SELECT (@i:=@i+1) i,user_id,user_name FROM `dt_user_all_orders`, (SELECT @i:=0) as i WHERE user_name='qqqqqqqqqq' LIMIT 0,10;结果:如果需...

weixin_39851279的博客 1376

Hive基本架构和原理

Hive基本架构和原理

kw-home 3204

php mysql 序号_MYSQL如何自动为查询数据的结果编上序号详解

前言其实自己之前没遇到过这种在查询时给结果编号的情况,是同事打算跳槽,面试回来问到这种情况才想到去研究,以下以单表查询为例分析下:SQL:SELECT (@i:=@i+1) i,user_id,user_name FROM `dt_user_all_orders`, (SELECT @i:=0) as i WHERE user_name='qqqqqqqqqq' LIMIT 0,10;结果:如果需...

weixin_31546795的博客 508

hive实现原理介绍

前言 Hive是构建在Hadoop上的数据仓库软件框架,支持使用SQL来读,写和管理大规模数据集合。Hive入门非常简单,功能非常强大,所以非常流行。 通常来说,Hive只支持数据查询和加载,但后面的版本也支持了插入,更新和删除以及流式api。Hive具有目前Hadoop上最丰富最全的SQL语法,也拥有最慢最稳定的执行。是目前Hadoop上几乎标准的ETL和数据仓库工具。 Hive这个特点与其它AdHoc查询工具如Impala,Spark SQL或者Presto有着应用场景的区别,也就是虽然都是即席查

breakout_alex的博客 5367

mysql自增长图文_MYSQL如何自动为查询数据的结果编上序号办法图文详细教程

软件安装:装机软件必备包SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。本文主要给大家介绍了关于MYSQL如何自动为查询数据的...

weixin_33122947的博客 171

Hive的核心原理以及查询优化

Hive是构建在Hadoop上的数据仓库软件框架,支持使用SQL来读,写和管理大规模数据集合。Hive入门非常简单,功能非常强大,所以非常流行。 通常来说,Hive只支持数据查询和加载,但后面的版本也支持了插入,更新和删除以及流式api。Hive具有目前Hadoop上最丰富最全的SQL语法,也拥有最慢最稳定的执行。是目前Hadoop上几乎标准的ETL和数据仓库工具。 Hive这个特点与其它AdHo...

一尘在心的博客 1949

NoSQL--MongoDB选择

在过去的架构选型及实际使用中,NoSQL数据库当然是必不可少的一部分。分别使用了Cassandra,MongoDB,Redis,HBase这几款有代表性的NoSQL数据库 1,Cassandra: Cassandra从安装配置,到使用,负载平衡机制等等,无疑是这些新兴的NoSQL中最方便使用的一个(个人使用体验观点) 但从近期的消息来看由于出现过几次较为严重的数据库停止服务事...

dieyanxiu7528的博客 115

Bulk批量插入时格式文件的生成方法,及execl表导入及相关

写这文章推荐给编辑是因为,网上很多资料是错误的,不全面的,光看资料是没有办法解决问题的.SELECT hotelid into #tempHotelC FROM OPENROWSET(Bulk 'd:/a/hotelidc.txt',FORMATFILE='d:/a/format.txt') AS b这个FORMATFILE是怎么出来的,怎么写的呢?可以自己写,但也不知道格式是什么,网上说有一个BCP的,BCP是什么呢,他就是个命令,没有界面的,可以在cmd里面执行,我们也可以通过exec master..

zb219的专栏 1214

httpd 安装 、sqlite3安装 学习笔记

httpd:------------------------------------------------------------ sudo apt-get install httpd 或是找httpd 安装包 找到后,做如下操作,一般安装包一类的操作都差不多这样做; ./configure -prefix=/var/httpd make sudo make install

DeepXL 821

Hive知识梳理

Hive是建立在 Hadoop 上的数据仓库基础构架。可以将SQL查询转换为MapReduce的job在Hadoop集群上执行。

RuiLearn的博客 4871

Hive原理及查询优化

Hive是构建在Hadoop上的数据仓库软件框架,支持使用SQL来读,写和管理大规模数据集合。Hive入门非常简单,功能非常强大,所以非常流行。 通常来说,Hive只支持数据查询和加载,但后面的版本也支持了插入,更新和删除以及流式api。Hive具有目前Hadoop上最丰富最全的SQL语法,也拥有最慢最稳定的执行。是目前Hadoop上几乎标准的ETL和数据仓库工具。 Hive这个特点与

LW_ICE 1万+
上一篇: 对web.config进行新增修改删除读取操作
下一篇: SQL Server死锁总结
jiva1
博客等级 码龄19年 4粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值