sqlserver 自定义函数

Aylazhang 2008-05-29 05:52:06
sql server 2000,想实现一个自定义的函数,作用到表的字段。跟系统函数差不多。
如ltrim,rtirm .请问如何书写?

想去掉字段中的数字。

f
--------------
aa12bb
gg00cc

想通过调用 select xxx(f) from table_my得到如下结果:
aabb
ggcc
...全文
202 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
律己修心 2008-05-29
  • 打赏
  • 举报
回复
很好
学习了
Limpire 2008-05-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Aylazhang 的回复:]
2楼的,请问如何调用?
如果不是针对表的“列”的,只是fn_trimNumber('test001test')这样的话,并不是我想要的。
[/Quote]
select dbo.fn_trimNumber(column_name) from table_name
Aylazhang 2008-05-29
  • 打赏
  • 举报
回复
2楼的,请问如何调用?
如果不是针对表的“列”的,只是fn_trimNumber('test001test')这样的话,并不是我想要的。
lzhs 2008-05-29
  • 打赏
  • 举报
回复
可以嵌套10个Replace,把0-9全部替换成''
lff642 2008-05-29
  • 打赏
  • 举报
回复
好强.学习一下.
pt1314917 2008-05-29
  • 打赏
  • 举报
回复

--> 测试数据: [s]
if object_id('[s]') is not null drop table [s]
create table [s] (name varchar(10))
insert into [s]
select 'aa12bb32' union all
select 'gg00cc3s'



alter function f_s(@name varchar(1000))
returns varchar(1000)
as
begin
declare @i int,@var varchar(1000)
set @i=1
if(patindex('%[0-9]%',@name)<0)
set @var= @name
else
begin
while(@i<=len(@name))
begin
if(patindex('%[0-9]%',substring(@name,@i,1))=0)
begin
set @var=isnull(@var,'')+substring(@name,@i,1)
end
set @i=@i+1
end
end
return @var
end

select dbo.f_s(name) from [s]


tim_spac 2008-05-29
  • 打赏
  • 举报
回复
create function dbo.fn_trimNumber(@var varchar(512))
returns varchar(512) as
begin
return replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(@var
,'0','')
,'1','')
,'2','')
,'3','')
,'4','')
,'5','')
,'6','')
,'7','')
,'8','')
,'9','')
end
go
Limpire 2008-05-29
  • 打赏
  • 举报
回复
去掉数字?

34,837

社区成员

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

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