--1.提取中文
create function dbo.getCN
(
@str as 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
PRINT dbo.getCN('ASDKG论坛KDL')
--论坛
PRINT dbo.getCN('ASDKG論壇KDL')
--論壇
PRINT dbo.getCN('ASDKDL')
--空
--2.提取数字
CREATE FUNCTION DBO.getNumber(@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
--测试 多个条件用逗号隔开 PATINDEX('%[^0-9,*]%',@S) > 0
PRINT dbo.getNumber('呵呵ABC123ABC')
GO
--123
--3.提取英文
CREATE FUNCTION DBO.