主頁 > 知識庫 > SQL server中字符串逗號分隔函數(shù)分享

SQL server中字符串逗號分隔函數(shù)分享

熱門標簽:零成本地圖標注賺錢 安卡拉地圖標注app 互聯(lián)網(wǎng)電話外呼系統(tǒng) 電銷需要外呼系統(tǒng)嗎 千呼電話機器人可以試用嗎 400電話辦理泰安 電話機器人怎么代理商 家庭農(nóng)場地圖標注名稱怎樣起名 我要地圖標注數(shù)量有限制嗎

繼SQl -Function創(chuàng)建函數(shù)數(shù)據(jù)庫輸出的結(jié)果用逗號隔開,在開發(fā)中也有許多以參數(shù)的形式傳入帶逗號字條串參數(shù)(數(shù)據(jù)大時不建議這樣做)

例:查找姓名為“張三,李二” 的數(shù)據(jù)此時在數(shù)據(jù)庫里就要對此參數(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字符串逗號分隔函數(shù)就介紹到這,大家可以參考一下。

您可能感興趣的文章:
  • Sqlserver 自定義函數(shù) Function使用介紹
  • SQL Server實現(xiàn)split函數(shù)分割字符串功能及用法示例
  • sql server如何利用開窗函數(shù)over()進行分組統(tǒng)計
  • Sql Server中REPLACE函數(shù)的使用
  • SQL Server 常用函數(shù)使用方法小結(jié)

標簽:大同 濱州 黃山 文山 新鄉(xiāng) 東營 池州 來賓

巨人網(wǎng)絡(luò)通訊聲明:本文標題《SQL server中字符串逗號分隔函數(shù)分享》,本文關(guān)鍵詞  SQL,server,中,字符串,逗號,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL server中字符串逗號分隔函數(shù)分享》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL server中字符串逗號分隔函數(shù)分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章