SQL server中字符串逗號(hào)分隔函數(shù)分享
繼SQl -Function創(chuàng)建函數(shù)數(shù)據(jù)庫(kù)輸出的結(jié)果用逗號(hào)隔開(kāi),在開(kāi)發(fā)中也有許多以參數(shù)的形式傳入帶逗號(hào)字條串參數(shù)(數(shù)據(jù)大時(shí)不建議這樣做)
例:查找姓名為“張三,李二” 的數(shù)據(jù)此時(shí)在數(shù)據(jù)庫(kù)里就要對(duì)此參數(shù)做處理如圖:

函數(shù)代碼如下
CREATE FUNCTION [dbo].[fnSplitStr] (
@sText NVARCHAR(Max),
@sDelim CHAR(1)
)
RETURNS @retArray TABLE (
value VARCHAR(100)
)
AS
BEGIN
DECLARE
@posStart BIGINT,
@posNext BIGINT,
@valLen BIGINT,
@sValue NVARCHAR(100);
IF @sDelim IS NULL
BEGIN
IF LEN(@sText)>100 SET @sText = SUBSTRING(@sText, 1, 100)
INSERT @retArray (value)
VALUES (@sText);
END
ELSE
BEGIN
SET @posStart = 1;
WHILE @posStart <= LEN(@sText)
BEGIN
SET @posNext = CHARINDEX(@sDelim, @sText, @posStart);
IF @posNext <= 0
SET @valLen = LEN(@sText) - @posStart + 1;
ELSE
SET @valLen = @posNext - @posStart;
SET @sValue = SUBSTRING(@sText, @posStart, @valLen);
SET @posStart = @posStart + @valLen + 1;
IF LEN(@sValue) > 0
BEGIN
IF LEN(@sValue)>100 SET @sValue = SUBSTRING(@sValue, 1, 100)
INSERT @retArray (value)
VALUES (@sValue);
END
END
END
RETURN
END
好了,關(guān)于sql字符串逗號(hào)分隔函數(shù)就介紹到這,大家可以參考一下。
- SQL Server中常用截取字符串函數(shù)介紹
- SQL SERVER 2012新增函數(shù)之字符串函數(shù)FORMAT詳解
- SQL SERVER2012中新增函數(shù)之字符串函數(shù)CONCAT詳解
- SQL Server實(shí)現(xiàn)split函數(shù)分割字符串功能及用法示例
- SQL Server字符串切割函數(shù)
- SQLServer中的切割字符串SplitString函數(shù)
- sqlserver replace函數(shù) 批量替換數(shù)據(jù)庫(kù)中指定字段內(nèi)指定字符串參考方法
- Sql Server 字符串聚合函數(shù)
- SQL?Server中字符串函數(shù)的用法詳解
相關(guān)文章
SQLSERVER中得到執(zhí)行計(jì)劃的兩種方式
得到執(zhí)行計(jì)劃的方式有兩種:一種是在指令的前面打開(kāi)一些開(kāi)關(guān),讓執(zhí)行計(jì)劃信息打在結(jié)果集里,這種方法比較適合在一個(gè)測(cè)試環(huán)境里對(duì)單個(gè)語(yǔ)句調(diào)優(yōu);另一種方法是使用SQL Trace里的事件跟蹤來(lái)跟蹤語(yǔ)句的執(zhí)行計(jì)劃,感興趣的朋友可以了解下2013-01-01
sql server 2008 壓縮備份數(shù)據(jù)庫(kù)(20g)
這篇文章主要介紹了針對(duì)20g數(shù)據(jù)庫(kù)的遷移問(wèn)題,,需要的朋友可以參考下2018-03-03
sqlserver 不能將值NULL插入列id(列不允許有空值解決)
Microsoft OLE DB Provider for SQL Server 錯(cuò)誤 '80040e2f' 不能將值 NULL 插入列 'id',表 'web.dbo.dingdan';列不允許有空值。INSERT 失敗2013-06-06
恢復(fù)sql server 2000誤刪數(shù)據(jù)的解決辦法
這篇文章主要介紹了恢復(fù)sql server 2000誤刪數(shù)據(jù)的解決辦法,需要的朋友可以參考下2015-09-09
SQL窗口函數(shù)之聚合窗口函數(shù)的使用(count,max,min,sum)
許多常見(jiàn)的聚合函數(shù)也可以作為窗口函數(shù)使用,包括AVG()、SUM()、COUNT()、MAX()以及MIN()等函數(shù),本文就詳細(xì)的介紹了SQL窗口函數(shù)之聚合窗口函數(shù)的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
關(guān)于sql和mysql對(duì)于別名不能調(diào)用的一些理解
由于有部分語(yǔ)句別名不能調(diào)用原來(lái)是由于別名機(jī)制不同引起的,為了避免下次發(fā)生就整理了一下sql和mysql執(zhí)行順序發(fā)現(xiàn)內(nèi)部機(jī)制是一樣的,最大區(qū)別是在別名的引用上2013-11-11
詳解將DataGrip連接到MS SQL Server的方法
這篇文章主要介紹了詳解將DataGrip連接到MS SQL Server的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

