最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL Server 提取數(shù)字、提取英文、提取中文的sql語句

 更新時間:2014年10月20日 13:37:03   投稿:mdxy-dxy  
這篇文章主要介紹了SQL Server 提取數(shù)字、提取英文、提取中文 ,需要的朋友可以參考下
--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')
--空

-------------------------------------
--提取數(shù)字
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

--------------------------------------------------------------------
--過濾重復(fù)字符
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

--------------------------------------------------------------------
--過濾重復(fù)字符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),   --包含多個數(shù)據(jù)項的字符串
@INDEX int,       --要獲取的數(shù)據(jù)項的位置
@SPLIT varchar(10)   --數(shù)據(jù)分隔符
)
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

相關(guān)文章

  • SqlServer數(shù)據(jù)庫腳本執(zhí)行命令行指令方式

    SqlServer數(shù)據(jù)庫腳本執(zhí)行命令行指令方式

    這篇文章主要介紹了SqlServer數(shù)據(jù)庫腳本執(zhí)行命令行指令方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • sqlserver2017共享功能目錄路徑不可改的解決方法

    sqlserver2017共享功能目錄路徑不可改的解決方法

    這篇文章主要介紹了sqlserver2017共享功能目錄路徑不可改的解決方法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • SQL?Server下7種“數(shù)據(jù)分頁”方案全網(wǎng)最新最全

    SQL?Server下7種“數(shù)據(jù)分頁”方案全網(wǎng)最新最全

    這篇文章主要介紹了SQL?Server下7種“數(shù)據(jù)分頁”方案,全網(wǎng)最全,本文下面重點闡述上述【第二種】方案在SQL?Server上的使用(其它種類數(shù)據(jù)庫由于Sql語句略有差異,所以需要調(diào)整,但方案也類似),需要的朋友可以參考下
    2023-01-01
  • SQL Server 高性能寫入的一些經(jīng)驗總結(jié)

    SQL Server 高性能寫入的一些經(jīng)驗總結(jié)

    本篇博文將針對一些常用的數(shù)據(jù)庫性能調(diào)休方法進(jìn)行介紹,而且,為了編寫高效的SQL代碼,我們需要掌握一些基本代碼優(yōu)化的技巧,所以,我們將從一些基本優(yōu)化技巧進(jìn)行介紹
    2012-08-08
  • SQLSERVER記錄登錄用戶的登錄時間(自寫腳本)

    SQLSERVER記錄登錄用戶的登錄時間(自寫腳本)

    下面是本人寫的一個腳本,我的實現(xiàn)原理是使用觸發(fā)器,觸發(fā)器是登錄觸發(fā)器,范圍是整個服務(wù)器范圍,如果有人登錄過,就使用 bcp命令把登錄信息記錄日志文件,感興趣的朋友可以了解下,或許本文的知識點對你有所幫助
    2013-02-02
  • executesql 存儲過程

    executesql 存儲過程

    executesql 存儲過程代碼,需要的朋友可以參考下。
    2009-11-11
  • sqlserver 存儲過程動態(tài)參數(shù)調(diào)用實現(xiàn)代碼

    sqlserver 存儲過程動態(tài)參數(shù)調(diào)用實現(xiàn)代碼

    sqlserver 存儲過程動態(tài)參數(shù)調(diào)用實現(xiàn)代碼,需要的朋友可以參考下。
    2011-10-10
  • 自己收集比較強大的分頁存儲過程 推薦

    自己收集比較強大的分頁存儲過程 推薦

    這兩天幫朋友修改一個項目,看到一個存儲過程,感覺性能非常高。于是,整合自己以前搜集的比較好的存儲過程,拿來跟大家分享下
    2011-11-11
  • 親自教你使用?ChatGPT?編寫?SQL?JOIN?查詢示例

    親自教你使用?ChatGPT?編寫?SQL?JOIN?查詢示例

    這篇文章主要介紹了使用ChatGPT編寫SQL?JOIN查詢,作為一種語言模型,ChatGPT 可以就如何構(gòu)建復(fù)雜的 SQL 查詢和 JOIN 提供指導(dǎo)和建議,但它不能直接訪問 SQL 數(shù)據(jù)庫,它可以幫助您了解語法、最佳實踐和有關(guān)如何構(gòu)建查詢以高效執(zhí)行的一般指導(dǎo),需要的朋友可以參考下
    2023-02-02
  • sp_executesql 使用復(fù)雜的Unicode 表達(dá)式錯誤的解決方法

    sp_executesql 使用復(fù)雜的Unicode 表達(dá)式錯誤的解決方法

    sp_executesql 使用復(fù)雜的Unicode 表達(dá)式錯誤的解決方法,需要的朋友可以參考下
    2012-01-01

最新評論

建昌县| 永川市| 石狮市| 保定市| 南靖县| 日喀则市| 大方县| 甘德县| 白水县| 玉林市| 白银市| 澎湖县| 深水埗区| 华蓥市| 达孜县| 本溪市| 平江县| 陇西县| 拜泉县| 霞浦县| 长宁县| 巴南区| 门头沟区| 错那县| 蓬安县| 手游| 武威市| 玛沁县| 长寿区| 汉源县| 苍溪县| 扬中市| 安达市| 台江县| 嘉兴市| 顺义区| 陆丰市| 德格县| 宁德市| 娱乐| 鸡泽县|