亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

Sql Server中常用的6個自定義函數分享

2024-08-31 01:02:43
字體:
來源:轉載
供稿:網友

在日常應用中,往往根據實際需求錄入一些值,而這些值不能直接使用,所以Sql中經常會對字段值進行一些常規的處理。這里搜集了(提取數字、英文、中文、過濾重復字符、分割字符的方法),方便日后查詢使用。  

一、判斷字段值是否有中文

復制代碼 代碼如下:


--SQL 判斷字段值是否有中文
create  function  fun_getCN(@str  nvarchar(4000))   
returns  nvarchar(4000)   
  as  
  begin  
  declare  @word  nchar(1),@CN  nvarchar(4000)   
  set  @CN=''  
  while  len(@str)>0   
  begin  
  set  @word=left(@str,1)   
  if unicode(@word)  between  19968  and  19968+20901 
      set  @CN=@CN+@word
  set  @str=right(@str,len(@str)-1)   
  end  
  return  @CN   
  end  
select dbo.fun_getCN('ASDKG論壇KDL')
--論壇
select dbo.fun_getCN('ASDKG論壇KDL')
--論壇
select dbo.fun_getCN('ASDKDL')
--空

二、提取數字

復制代碼 代碼如下:


IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULL
DROP FUNCTION DBO.GET_NUMBER2
GO
CREATE FUNCTION DBO.GET_NUMBER2(@S VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^0-9]%',@S) > 0
BEGIN
set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')
END
RETURN @S
END
GO
--測試
PRINT DBO.GET_NUMBER('呵呵ABC123ABC')
GO
--123

三、提取英文

復制代碼 代碼如下:


--提取英文
IF OBJECT_ID('DBO.GET_STR') IS NOT NULL
DROP FUNCTION DBO.GET_STR
GO
CREATE FUNCTION DBO.GET_STR(@S VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^a-z]%',@S) > 0
BEGIN
set @s=stuff(@s,patindex('%[^a-z]%',@s),1,'')
END
RETURN @S
END
GO
--測試
PRINT DBO.GET_STR('呵呵ABC123ABC')
GO

四、提取中文

復制代碼 代碼如下:


--提取中文
IF OBJECT_ID('DBO.CHINA_STR') IS NOT NULL
DROP FUNCTION DBO.CHINA_STR
GO
CREATE FUNCTION DBO.CHINA_STR(@S NVARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^吖-座]%',@S) > 0
SET @S = STUFF(@S,PATINDEX('%[^吖-座]%',@S),1,N'')
RETURN @S
END
GO
PRINT DBO.CHINA_STR('呵呵ABC123ABC')
GO

五、過濾重復字段(多種方法)

復制代碼 代碼如下:


--過濾重復字符
IF OBJECT_ID('DBO.DISTINCT_STR') IS NOT NULL
DROP FUNCTION DBO.DISTINCT_STR
GO
CREATE FUNCTION DBO.DISTINCT_STR(@S NVARCHAR(100),@SPLIT VARCHAR(50))
RETURNS VARCHAR(100)
AS
BEGIN
IF @S IS NULL RETURN(NULL)
DECLARE @NEW VARCHAR(50),@INDEX INT,@TEMP VARCHAR(50)
IF LEFT(@S,1)<>@SPLIT
SET @S = @SPLIT+@S
IF RIGHT(@S,1)<>@SPLIT
SET @S = @S+@SPLIT
WHILE CHARINDEX(@SPLIT,@S)>0 AND LEN(@S)<>1
BEGIN
SET @INDEX = CHARINDEX(@SPLIT,@S)
SET @TEMP = LEFT(@S,CHARINDEX(@SPLIT,@S,@INDEX+LEN(@SPLIT)))
IF @NEW IS NULL
SET @NEW = ISNULL(@NEW,'')+@TEMP
ELSE
SET @NEW = ISNULL(@NEW,'')+REPLACE(@TEMP,@SPLIT,'')+@SPLIT
WHILE CHARINDEX(@TEMP,@S)>0
BEGIN
SET @S=STUFF(@S,CHARINDEX(@TEMP,@S)+LEN(@SPLIT),CHARINDEX(@SPLIT,@S,CHARINDEX(@TEMP,@S)+LEN(@SPLIT))-CHARINDEX(@TEMP,@S),'')
END
END
RETURN RIGHT(LEFT(@NEW,LEN(@NEW)-1),LEN(LEFT(@NEW,LEN(@NEW)-1))-1)
END
GO
PRINT DBO.DISTINCT_STR('A,A,B,C,C,B,C,',',')
--A,B,C
GO
 
 
--------------------------------------------------------------------
--過濾重復字符2
IF OBJECT_ID('DBO.DISTINCT_STR2') IS NOT NULL
DROP FUNCTION DBO.DISTINCT_STR2
GO
CREATE FUNCTION DBO.DISTINCT_STR2(@S varchar(8000))
RETURNS VARCHAR(100)
AS
BEGIN
IF @S IS NULL RETURN(NULL)
DECLARE @NEW VARCHAR(50),@INDEX INT,@TEMP VARCHAR(50)
WHILE LEN(@S)>0
BEGIN
SET @NEW=ISNULL(@NEW,'')+LEFT(@S,1)
SET @S=REPLACE(@S,LEFT(@S,1),'')
END
RETURN @NEW
END
GO
SELECT DBO.DISTINCT_STR2('AABCCD')
--ABCD
GO

六、根據特定字符串分割字段值

復制代碼 代碼如下:


IF OBJECT_ID('DBO.SPLIT_STR') IS NOT NULL
DROP FUNCTION DBO.SPLIT_STR
GO
CREATE FUNCTION DBO.SPLIT_STR(
@S varchar(8000),      --包含多個數據項的字符串
@INDEX int,             --要獲取的數據項的位置
@SPLIT varchar(10)     --數據分隔符
)
RETURNS VARCHAR(100)
AS
BEGIN
IF @S IS NULL RETURN(NULL)
DECLARE @SPLITLEN int
SELECT @SPLITLEN=LEN(@SPLIT+'A')-2
WHILE @INDEX>1 AND CHARINDEX(@SPLIT,@S+@SPLIT)>0
SELECT @INDEX=@INDEX-1,@S=STUFF(@S,1,CHARINDEX(@SPLIT,@S+@SPLIT)+@SPLITLEN,'')
RETURN(ISNULL(LEFT(@S,CHARINDEX(@SPLIT,@S+@SPLIT)-1),''))
END
GO
PRINT DBO.SPLIT_STR('AA|BB|CC',2,'|')
--
GO

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
2019最新中文字幕| 51色欧美片视频在线观看| 国产精品久久久久久久一区探花| 91亚洲精华国产精华| 日韩精品高清视频| 日韩专区在线播放| 日韩成人在线观看| 欧美国产日韩免费| 久久这里只有精品99| 国产不卡精品视男人的天堂| 国产不卡av在线免费观看| 91久久精品国产91性色| 98精品国产高清在线xxxx天堂| 国产精品入口夜色视频大尺度| 韩国日本不卡在线| 亚洲人成在线观| 97超级碰碰人国产在线观看| 成人网欧美在线视频| 大荫蒂欧美视频另类xxxx| 日韩高清欧美高清| 热re91久久精品国99热蜜臀| 成人黄色中文字幕| 96精品视频在线| 亚洲欧美激情四射在线日| 1769国内精品视频在线播放| 精品视频一区在线视频| 亚洲黄色www网站| 亚洲国产日韩欧美在线动漫| 国产成人精品综合久久久| 亚洲精品国产电影| 欧美另类高清videos| 精品成人在线视频| 亚洲第一色中文字幕| 欧美高清在线播放| 欧美高清视频在线播放| 精品国产91久久久| 久久久av一区| 久久成人国产精品| 亚洲美女免费精品视频在线观看| 色综合影院在线| 欧美日韩成人精品| 日韩中文字幕国产| 亚洲aaaaaa| 亚洲乱亚洲乱妇无码| 欧美刺激性大交免费视频| 久久国产精品影片| 黄色一区二区三区| 91精品国产高清久久久久久| 亚洲精品福利在线观看| 国产精品69久久| 国产亚洲欧美一区| 久久国产色av| 精品久久久久久久久久久久| 国产日韩专区在线| 国产精品自拍视频| 久久久久久有精品国产| 亚洲激情第一页| 91精品国产综合久久久久久久久| 国产精品男女猛烈高潮激情| 在线精品视频视频中文字幕| 91国在线精品国内播放| 综合国产在线视频| 亚洲欧美日韩在线一区| 韩国精品美女www爽爽爽视频| 亚洲性无码av在线| 国产精品一区二区三区成人| 国产日韩在线看| 欧美精品18videos性欧美| 日韩精品丝袜在线| 国产精品www网站| 欧美另类精品xxxx孕妇| 亚洲男人第一网站| 国产欧美中文字幕| 亚洲福利视频专区| 成人精品久久一区二区三区| 国产亚洲精品日韩| 欧美在线视频免费播放| 精品国偷自产在线| 久久精视频免费在线久久完整在线看| 亚洲一区中文字幕| 国产精品久久久久久亚洲影视| 亚洲自拍中文字幕| 欧美性猛交xxxx久久久| 日本精品一区二区三区在线播放视频| 日韩亚洲综合在线| 亚洲免费影视第一页| 精品国产一区二区三区久久狼黑人| 久久精品一区中文字幕| 在线观看欧美日韩国产| 亚洲精品视频久久| 日韩精品中文字幕视频在线| 欧美老女人性视频| 国产精品天天狠天天看| 久久精品国产亚洲| 欧美www在线| 国产亚洲免费的视频看| 欧美成年人视频网站欧美| 国产精品第一页在线| 一区二区成人av| 日本高清+成人网在线观看| 日韩欧美成人免费视频| 欧美日韩国内自拍| 久久国产精品影片| 97av在线视频免费播放| 在线看片第一页欧美| 国产精品wwwwww| 亚洲性夜色噜噜噜7777| 久久久久久久999| 亚洲国产第一页| 精品久久久久久久大神国产| 成人精品aaaa网站| 91极品视频在线| 久久久精品一区| 亚洲激情视频网| 亚洲人成电影网站色www| 中文字幕综合在线| 久久精品免费电影| 久久婷婷国产麻豆91天堂| 国产精品亚洲片夜色在线| 98精品国产自产在线观看| 欧洲精品毛片网站| 国内精品一区二区三区四区| 日韩av日韩在线观看| 黄色成人av网| 少妇高潮 亚洲精品| 一夜七次郎国产精品亚洲| 久久91亚洲精品中文字幕奶水| 欧美日韩免费区域视频在线观看| 国产欧美一区二区三区久久人妖| 欧美成人精品不卡视频在线观看| 欧美裸体xxxx极品少妇软件| 亚洲永久免费观看| 久久精品国产视频| 久久精品国产免费观看| 欧美富婆性猛交| 精品国产一区二区三区久久狼黑人| 成人国产在线视频| 一区二区三区动漫| 欧美成人h版在线观看| 动漫精品一区二区| 国产精品视频导航| 国产精品欧美风情| 富二代精品短视频| 欧美午夜无遮挡| 亚洲女人天堂成人av在线| 亚洲裸体xxxx| 欧美日韩在线影院| 欧美日韩另类字幕中文| 精品人伦一区二区三区蜜桃免费| 亚洲福利视频网站| 亚洲热线99精品视频| 欧美日韩精品在线观看| 久久久久久国产免费| 午夜精品久久久久久久久久久久| 国产精品揄拍一区二区| 秋霞午夜一区二区| 欧美黄色片免费观看| 久热精品在线视频| 97激碰免费视频| 富二代精品短视频| 国产成人91久久精品| 中文字幕亚洲无线码在线一区| 亚洲欧洲国产伦综合| 疯狂做受xxxx高潮欧美日本|