SQL Server 从字符串中提取中文英文数字

Posted TuringChang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 从字符串中提取中文英文数字相关的知识,希望对你有一定的参考价值。

--【提取中文】
IF OBJECT_ID(‘dbo.fun_getCN‘) IS NOT NULL
DROP FUNCTION dbo.fun_getCN
GO
create function dbo.fun_getCN(@str varchar(4000))
returns varchar(4000)
as
begin
declare @word nchar(1),@CN varchar(4000)
set @CN=‘‘
while len(@str)>0
begin
set @word=left(@str,1)
if unicode(@word) between 19968 and 40869
set @[email protected][email protected]
set @str=right(@str,len(@str)-1)
end
return @CN
end
GO

SELECT DBO.fun_getCN(‘turing我666QQ中国AK123‘)


--【提取中文】
IF OBJECT_ID(‘DBO.get_Chinese‘) IS NOT NULL
DROP FUNCTION DBO.get_Chinese
GO
CREATE FUNCTION DBO.get_Chinese(@S NVARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX(‘%[^吖-座]%‘,@S) > 0
SET @S = STUFF(@S,PATINDEX(‘%[^吖-座]%‘,@S),1,N‘‘)
RETURN @S
END
GO
SELECT DBO.get_Chinese(‘turing我666QQ中国AK123‘)



--【提取数字】
IF OBJECT_ID(‘dbo.GET_NUMBER‘) IS NOT NULL
DROP FUNCTION dbo.GET_NUMBER
GO
CREATE FUNCTION dbo.GET_NUMBER(@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

SELECT DBO.GET_NUMBER(‘turing我666QQ中国AK123‘)


--【提取英文】
IF OBJECT_ID(‘DBO.get_English‘) IS NOT NULL
DROP FUNCTION DBO.get_English
GO
CREATE FUNCTION DBO.get_English(@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

SELECT DBO.get_English(‘turing我666QQ中国AK123‘)











































































以上是关于SQL Server 从字符串中提取中文英文数字的主要内容,如果未能解决你的问题,请参考以下文章

从 VB.NET 中的 SQL Server 中提取值

SQL Server中如何把 科学记数法字符串 变为 数字字符串

如何在 SQL Server 中提取此特定子字符串?

如何使用 REGEXP sql 从字符串中仅提取 5 位数字

使用 SQL 。从字符串'HEADER|N1000|E1001|N1002|E1003|N1004|N1005'中提取逗号分隔的数字

sql server中对字段使用正则表达式替换???