首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么去掉字符串中的中文

2012-07-28 
怎样去掉字符串中的中文?set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER FUNCTION [dbo].[GET_NUMBER2

怎样去掉字符串中的中文?
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER 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
这个函数我执行,发现只能去掉其中一个字符串的中文,如果参数@s为一列的列名,执行结果居然都是同一个结果

[解决办法]

SQL code
ALTER FUNCTION [dbo].[GET_NUMBER2](@S VARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[吖-座]%',@S) > 0BEGINset @s=stuff(@s,patindex('%[吖-座]%',@s),1,'')ENDRETURN @SEND
[解决办法]
SQL code
select *,dbo.GET_NUMBER2([列名]) from tb --列名不能加引号
[解决办法]
你这个提取数字的吗?
[解决办法]
SQL code
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba')BEGIN    DROP TABLE tbaENDGOCREATE TABLE tba(    col1 VARCHAR(100))GOINSERT INTO tbaSELECT '3445wersrede23sde' UNIONSELECT '937846rdjkdie37334'GOIF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'GET_NUMBER2')BEGIN    DROP FUNCTION GET_NUMBER2ENDGOCREATE FUNCTION GET_NUMBER2(@S VARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[^0-9]%',@S) > 0BEGINset @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')ENDRETURN @SENDGOSELECT dbo.GET_NUMBER2(col1) AS col1FROM tbacol134452393784637334 

热点排行