关于SQL表格取值说明 怎么进行下面说明1 第一个字符为字母2 6位数字字符3 前2个字符为大写字母4 默认是系统日期 以上问题分别在查询分析器和企业管理器中怎么解决 谢谢各位大侠 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议这种业务逻辑在程序中使用正则表达式来实现。当然在数据库中也可以通过正则表达式的自定义函数来实现。http://topic.csdn.net/t/20050829/17/4238335.html/* 利用正则表达式替换字符 调用: 1.获取字符串中的英文字符 declare @str varchar(100) set @str='xyz123z5' select dbo.regexReplace(@str,'[^a-zA-Z]','',1,1) 2.获取字符串中的英文字符长度 declare @str varchar(100) set @str='xyz123z5' select len(dbo.regexReplace(@str,'[^a-zA-Z]','',1,1)) */ alter function dbo.regexReplace ( @source varchar(8000), --原字符串 @regexp varchar(1000), --正则表达式 @replace varchar(1000), --替换值 @globalReplace bit = 0, --是否是全局替换 @ignoreCase bit = 0 --是否忽略大小写 ) returnS varchar(8000) AS begin declare @hr integer declare @objRegExp integer declare @result varchar(5000) exec @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replace IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OADestroy @objRegExp IF @hr <> 0 begin return null end return @result end GO 太菜了,求一SQL语句 请问一个触发器的写法 如何查被锁定的表正在被进行的操作的相关信息 两个表的关联查询问题,请高人指点! 多条件求和怎么写? 初学者请教! 请教一个数据库的问题100f sql server 2000 高手快进来,在线急等!!!一个难题 SQL Server 2000 和VC.Net的连接出现数据集只读、数据流截断、 ◆现在大家都使用什么测试管理软件?◆ 在线等~ 恳请各位帮忙解决一下动态SQL问题 谢谢 老师帮忙,返回的函数结果在调用问题! 恳请老师们指导!
当然在数据库中也可以通过正则表达式的自定义函数来实现。
http://topic.csdn.net/t/20050829/17/4238335.html
/*
利用正则表达式替换字符
调用:
1.获取字符串中的英文字符
declare @str varchar(100)
set @str='xyz123z5'
select dbo.regexReplace(@str,'[^a-zA-Z]','',1,1)
2.获取字符串中的英文字符长度
declare @str varchar(100)
set @str='xyz123z5'
select len(dbo.regexReplace(@str,'[^a-zA-Z]','',1,1))
*/
alter function dbo.regexReplace
(
@source varchar(8000), --原字符串
@regexp varchar(1000), --正则表达式
@replace varchar(1000), --替换值
@globalReplace bit = 0, --是否是全局替换
@ignoreCase bit = 0 --是否忽略大小写
)
returnS varchar(8000) AS
begin
declare @hr integer
declare @objRegExp integer
declare @result varchar(5000)
exec @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replace
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OADestroy @objRegExp
IF @hr <> 0 begin
return null
end
return @result
end
GO