欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年10月23日 22:18:08   投稿:mdxy-dxy  
繼SQl -Function創(chuàng)建函數(shù)數(shù)據(jù)庫(kù)輸出的結(jié)果用逗號(hào)隔開,在開發(fā)中也有許多以參數(shù)的形式傳入帶逗號(hào)字條串參數(shù),需要的朋友可以參考下

SQl -Function創(chuàng)建函數(shù)數(shù)據(jù)庫(kù)輸出的結(jié)果用逗號(hào)隔開,在開發(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ù)就介紹到這,大家可以參考一下。

相關(guān)文章

最新評(píng)論