sql server 2005 语句应该怎么写?

索书号D261/7733D261/8762F715/1228TP393/5334TP393.4/5566TS976.15/7710DF432.1/4178F23-44/5637
只要前面的大写字母,比如D、F、TP、TS等,作为新的一列插入表中。这个表的名称假设是a

你这个得创建一个自定义函数

 

先建立一个测试表

create table test
(content varchar(100))

insert into test values('D261/7733')
insert into test values('D261/8762')
insert into test values('F715/1228')
insert into test values('TP393/5334')
insert into test values('TP393.4/5566')
insert into test values('TS976.15/7710')
insert into test values('DF432.1/4178')
insert into test values('F23-44/5637')

创建函数

create function [dbo].[m_getstr]
(@maco varchar(100))
returns varchar(max)
as
begin
 while patindex('%[^a-z]%',@maco)>0
  begin
   set @maco=stuff(@maco,patindex('%[^a-z]%',@maco),1,'')
  end
 return @maco
end

调用函数

select dbo.[m_getstr](content) from test

结果

 

自行对比一下吧

追问

是这样的,我的数据有几万条,测试表怎么办?

追答

你数据不在表里吗?
在表里直接调用函数,不在表里就给导进去啊

追问

数据在表里呢,我就是不太明白这个测试表难道要把每一个都加进入吗?我用你的执行了一遍确实是可以的,就是不知道怎么解决几万条数据的问题?
insert into test values('D261/7733')

追答

select dbo.[m_getstr](你的字段名) from ä½ çš„表名

   

懂?

追问

嘿嘿,懂了,执行完了,确实是可以的,但是没有插入到其中作为新的一列,大侠,能不能把插入语句也帮我写一下?

追答

你的新列在表里存在吗?存在的话比如新列叫new_col

update è¡¨å  set new_col=dbo.[m_getstr](你的字段名)

不存在这个列的话,你就自己加一个字段

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜