SQL Server字符串切割函數(shù)
更新時(shí)間:2012年07月27日 10:25:39 作者:
創(chuàng)建用戶定義函數(shù),它是返回值的已保存的 Transact-SQL 例程。用戶定義函數(shù)不能用于執(zhí)行一組修改全局?jǐn)?shù)據(jù)庫(kù)狀態(tài)的操作。與系統(tǒng)函數(shù)一樣,用戶定義函數(shù)可以從查詢中喚醒調(diào)用。也可以像存儲(chǔ)過(guò)程一樣,通過(guò) EXECUTE 語(yǔ)句執(zhí)行
復(fù)制代碼 代碼如下:
CREATE FUNCTION fGetStrBySplit
(
@Source VARCHAR(max),
@Index INT,
@SplitChar VARCHAR(1)
)
RETURNS varchar(MAX)
AS
BEGIN
DECLARE @Len INT
DECLARE @n INT = 0
DECLARE @ChIndex INT
DECLARE @Result VARCHAR(MAX)
--獲取總長(zhǎng)度
SET @Len = LEN(@Source)
--獲取切割字符位置
SET @ChIndex = CHARINDEX(@SplitChar,@Source)
WHILE @ChIndex > 0
BEGIN
IF(@n = @Index)
BEGIN
SET @Source = SUBSTRING(@Source,0,@ChIndex)
BREAK
END
SET @Source = SUBSTRING(@Source,@ChIndex+1,@Len)
SET @ChIndex = CHARINDEX(@SplitChar,@Source)
SET @Len = LEN(@Source)
SET @n = @n + 1
END
RETURN @Source
END
GO
--調(diào)用
DECLARE @value VARCHAR(max)
SET @value = dbo.fGetStrBySplit('645002*01_45854_183677_12',0,'_')
PRINT @value
結(jié)果:
645002*01
--1
45854
--2
183677
您可能感興趣的文章:
- SQL Server中常用截取字符串函數(shù)介紹
- SQL SERVER 2012新增函數(shù)之字符串函數(shù)FORMAT詳解
- SQL SERVER2012中新增函數(shù)之字符串函數(shù)CONCAT詳解
- SQL server中字符串逗號(hào)分隔函數(shù)分享
- SQL Server實(shí)現(xiàn)split函數(shù)分割字符串功能及用法示例
- SQLServer中的切割字符串SplitString函數(shù)
- sqlserver replace函數(shù) 批量替換數(shù)據(jù)庫(kù)中指定字段內(nèi)指定字符串參考方法
- Sql Server 字符串聚合函數(shù)
- SQL?Server中字符串函數(shù)的用法詳解
相關(guān)文章
SQL server 隨機(jī)數(shù)函數(shù)
在SQL server中,有個(gè)隨機(jī)函數(shù)rand(),有不少新手可能不知道存在這個(gè)函數(shù),現(xiàn)在我就把這個(gè)函數(shù)的一些隨機(jī)數(shù)生成技巧寫出來(lái),這是面向菜鳥的,老鳥請(qǐng)不要拍磚呀,我的頭還不夠硬2009-07-07
根據(jù)sql腳本修改數(shù)據(jù)庫(kù)表結(jié)構(gòu)的幾種解決方案
這篇文章主要介紹了如何根據(jù)sql腳本修改數(shù)據(jù)庫(kù)表結(jié)構(gòu),需要的朋友可以參考下2014-05-05
SQL Server誤設(shè)置max server memory的處理方法
這篇文章主要給大家介紹了關(guān)于SQL Server誤設(shè)置max server memory的處理方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL Server具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧下2019-12-12
Sql Server中判斷表、列不存在則創(chuàng)建的方法
這篇文章主要給大家分享了Sql Server中判斷表、列是否存在,如果不存在則創(chuàng)建的方法,文章先給大家簡(jiǎn)單介紹了Sql Server中判斷表中某列是否存在的方法,文中給出了詳細(xì)的示例代碼,需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2017-03-03
Microsoft Search 服務(wù)無(wú)法啟動(dòng) 解決辦法.
嘗試用正常系統(tǒng)的注冊(cè)表項(xiàng)添加到非正常系統(tǒng)中去。(因?yàn)閷?duì)比的兩個(gè)系統(tǒng)版本、結(jié)構(gòu)相同,所此次就直接通過(guò)導(dǎo)入導(dǎo)出注冊(cè)表項(xiàng)進(jìn)行批量修改)。2009-04-04
Sql Server之?dāng)?shù)據(jù)類型詳解
本文詳細(xì)講解了Sql Server中的數(shù)據(jù)類型,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
SQL高級(jí)應(yīng)用之同服務(wù)器上復(fù)制表到另一數(shù)據(jù)庫(kù)中并實(shí)現(xiàn)去重復(fù)
項(xiàng)目需求:將數(shù)據(jù)庫(kù)Whir_ezMall_Full中的表Whir_Member的數(shù)據(jù)遷移到數(shù)據(jù)庫(kù)Whir_ezMall_Full_c中的Whir_Member表,已存在的ID記錄則不插入2014-06-06

