博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
以连接字符截取字符串
阅读量:5169 次
发布时间:2019-06-13

本文共 1371 字,大约阅读时间需要 4 分钟。

一些字符串是由"-"连接字符连接。

想以这个连接字符"-"对字符串时行截取前后字符。

可以写一个自定义函数:

 

SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:      Insus.NET-- Create date: 2019-05-27-- Update date: 2019-05-27-- Description: 截取字符串-- =============================================CREATE FUNCTION [dbo].[svf_CutOutStringWithHyphen](    @string NVARCHAR(MAX))RETURNS @Table TABLE([Front] NVARCHAR(MAX),[Back] NVARCHAR(MAX))ASBEGIN     DECLARE @hyphen VARCHAR(1) = N'-'    IF @string LIKE '%'+ @hyphen +'%'    BEGIN    DECLARE @hyphen_position INT = CHARINDEX(@hyphen, @string)        INSERT INTO @Table ([Front],[Back])        SELECT SUBSTRING(@string, 1, @hyphen_position - 1) AS _From,               SUBSTRING(@string, @hyphen_position + 1, LEN(@string)- @hyphen_position) AS _To        END    ELSE    INSERT INTO @Table ([Front],[Back]) VALUES(N'',N'')    RETURNENDGO
Source Code

 

例子:

下面有一临时表,存储一些字符:

 

CREATE TABLE #T ([ID] INT, [Strings] NVARCHAR(40))INSERT INTO #T([ID],[Strings]) VALUES (1,'B-Q'),(2,'23-45'),(3,'H-P'),(4,'ADF'),(5,'ADSF-ASDF-ASDF'),(6,'-ADF-ADF-'),(7,'-SFDG-KLJ-QER-'),(8,'shg-'),(9,'-sdfgs')SELECT [ID],[Strings] FROM #T
Source Code

现使用上面的自定义函数对临时表中[String]字符进行分割。得到的结果如下:

 

SELECT [ID],[Strings],[Front],[Back] FROM #TCROSS APPLY [dbo].[svf_CutOutStringWithHyphen]([Strings])
Source Code

 

转载于:https://www.cnblogs.com/insus/p/10928734.html

你可能感兴趣的文章
Pixel 3a 开箱及 Google Fi 服务评测视频
查看>>
用一个div模拟textarea的实现【前端每日一题-15】
查看>>
Python学习教程:爬虫分析了京东内衣销售记录,哪个size最多?
查看>>
有Excel、Tableau、PowerBI都能做数据分析,为什么还要用Python
查看>>
redis如何进行分库存储和选择模糊清除缓存
查看>>
spring security退出方法
查看>>
从获得字符串中获取数字
查看>>
传入一个月份获取该月的统计信息
查看>>
分组取出值最大的数据
查看>>
java判断为空的方法
查看>>
double类型的数值转为小数点2位
查看>>
java比较两个时间年月份的大小
查看>>
服务器上配置JDK
查看>>
java后台生成APP和H5所需要支付宝订单
查看>>
接口传递的json后台如何获得值
查看>>
分页工具的使用
查看>>
如何在Linux启动jar 包
查看>>
微信支付java后台
查看>>
小明买了一箱鸡蛋,假设有n个,可以一天吃1个,也可以一天吃2个,请问有多 少种方法可以吃完?...
查看>>
BigDecimal浮点精度加减乘除运算
查看>>