字符串处理问题

huangqing_80 2012-08-16 09:48:02
如何在一段字符串中取出所有的英文字符,如下例:
周杰(董事长)zhoujie
孙红雷(总经理)sunhonglei
……
取出完字符后,如下结果
周杰(董事长) zhoujie
孙红雷(总经理) sunhonglei
……
就是将字符串中的英文字符单独取出,希望各位大大不吝赐教,感谢!
...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangqing_80 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

SQL code

declare @str nvarchar(100)
set @str = '周杰(董事长)zhoujie'

select left(@str,patindex('%[a-zA-Z]%',@str)-1) [1],
right(@str,len(@str)-patindex('%[a-zA-Z]%',@str)) [2]

/*******************……

我测试了一下,应该这样写
select left(@str,patindex('%[a-zA-Z]%',@str)-1) [1],
right(@str,len(@str)-patindex('%[a-zA-Z]%',@str)+1) [2]


谢谢大家的回答,问题已经解决
[/Quote]
AcHerat 元老 2012-08-16
  • 打赏
  • 举报
回复

declare @str nvarchar(100)
set @str = '周杰(董事长)zhoujie'

select left(@str,patindex('%[a-zA-Z]%',@str)-1) [1],
right(@str,len(@str)-patindex('%[a-zA-Z]%',@str)) [2]

/*********************

1 2
---------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------
周杰(董事长) houjie

(1 行受影响)
  • 打赏
  • 举报
回复

IF OBJECT_ID('dbo.fn_eng_word') IS NOT NULL
DROP FUNCTION dbo.fn_eng_word
GO
CREATE FUNCTION dbo.fn_eng_word(@S NVARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[a-z|A-Z]%',@S) > 0
SET @S = STUFF(@S,PATINDEX('%[a-z|A-Z]%',@S),1,N'')
RETURN @S
END
GO

if object_id('test') is not null drop table test
go
create table test([name] nvarchar(30))
go
insert into test
select N'周杰(董事长)zhoujie' union all
select N'孙红雷(总经理)sunhonglei'
go

select dbo.fn_eng_word([name]) f1,replace([name],dbo.fn_eng_word([name]),'') f2 from test

/*

(2 row(s) affected)
f1 f2
---------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
周杰(董事长) zhoujie
孙红雷(总经理) sunhonglei

(2 row(s) affected)
*/
叶子 2012-08-16
  • 打赏
  • 举报
回复
ws_hgo 2012-08-16
  • 打赏
  • 举报
回复
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

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧