Python 如何从数字列表中替换单个数字(从一组行中)?
我是数据库新手,我想在我的数据库中这样做。 我应该使用word 2007、Python还是其他什么?我现在只有这两样东西 原始消息如下:Python 如何从数字列表中替换单个数字(从一组行中)?,python,Python,我是数据库新手,我想在我的数据库中这样做。 我应该使用word 2007、Python还是其他什么?我现在只有这两样东西 原始消息如下: 你好,你好吗ref=13515 DIFAOIDDODVJAKJEOIJKNVKLN的定义 ikvnoivwoeij,vn,nviojv nkavjoiewgkjvlkaior 此邮件有一个编号,该编号将被此列表中的编号替换 876191 11166524 1117225 1116953 798993 793519 1116737 1116691 1116364
你好,你好吗ref=13515
DIFAOIDDODVJAKJEOIJKNVKLN的定义
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior
此邮件有一个编号,该编号将被此列表中的编号替换 876191
11166524
1117225
1116953
798993
793519
1116737
1116691
1116364
1115635
909014
760195
689981
604787
1116217
1104482
869990
886290
1115893
而且消息本身应该复制粘贴该次数,因为该列表中有
个数字 所以我的结果应该是
你好,你好吗ref=876191
DIFAOIDDODVJAKJEOIJKNVKLN的定义
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior
你好,你好吗ref=11166524
DIFAOIDDODVJAKJEOIJKNVKLN的定义
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior
你好,你好吗ref=1117225
DIFAOIDDODVJAKJEOIJKNVKLN的定义
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior
等等
请注意,列表中的数字是6位、7位或8位数字
谢谢
这是一个有趣的问题,可以在sql server内部完成 首先,我将原始消息放入一个表-@messages\u original。 它没有必要是一张桌子,因为只有一张
set nocount on
declare @messages_original table ( i int not null identity(1,1) primary key clustered, mess varchar(1008) not null)
declare @results table ( i int not null identity(1,1) primary key clustered, mess varchar(1008) not null)
declare @numbers table ( i int not null identity(1,1) primary key clustered, num varchar(10) not null)
declare @i int
declare @z int
declare @number_ varchar(10) --- the number in the original message
declare @number varchar(10) --- the number that needs to be replace the original number and save to the @results
insert into @messages_original values ('hello how are you ref=13515
ofdifaoididpodvjakjeoijknvkln
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior')
--I add the numbers into another table.
insert into @numbers (num) values ('876191')
insert into @numbers (num) values ('11166524')
insert into @numbers (num) values ('1117225')
insert into @numbers (num) values ('1116953')
insert into @numbers (num) values ('798993')
insert into @numbers (num) values ('793519')
insert into @numbers (num) values ('1116737')
insert into @numbers (num) values ('1116691')
insert into @numbers (num) values ('1116364')
insert into @numbers (num) values ('1115635')
insert into @numbers (num) values ('909014')
insert into @numbers (num) values ('760195')
insert into @numbers (num) values ('689981')
insert into @numbers (num) values ('604787')
insert into @numbers (num) values ('1116217')
insert into @numbers (num) values ('1104482')
insert into @numbers (num) values ('869990')
insert into @numbers (num) values ('886290')
insert into @numbers (num) values ('1115893')
select @i = 1,
@z = count(*) from @numbers
select @number_ = SubString(mess,PATINDEX('%[0-9]%',mess),Len(mess)),
@number_ = SubString(@number_,0,PATINDEX('%[^0-9]%',@number_))
from
@messages_original
where i = 1
while (@i <= @z) begin
select @number = num from @numbers where i = @i
insert into @results(mess)
select replace(mess,@number_,@number)
from
@messages_original
where i = 1
select @i = @i+ 1
end /*while*/
select * from @results
将nocount设置为on
声明@messages_原始表(i int not null identity(1,1)主键集群,mess varchar(1008)not null)
声明@results表(i int not null identity(1,1)主键集群,mess varchar(1008)not null)
声明@numbers表(i int not null identity(1,1)主键集群,num varchar(10)not null)
声明@i int
声明@z int
声明@number\uuvarchar(10)——原始消息中的数字
声明@number varchar(10)--需要替换原始数字并保存到@results的数字
插入@messages\u原始值('您好,您好ref=13515
DIFAOIDDODVJAKJEOIJKNVKLN
ikvnoivwoeij,vn,nviojv
nkavjoiewgkjvlkaior')
--我把数字加到另一个表中。
插入@numbers(num)值('876191')
插入@numbers(num)值('11166524')
插入@numbers(num)值('1117225')中
插入@numbers(num)值('1116953')中
插入@numbers(num)值('798993')
插入@numbers(num)值('793519')
插入@numbers(num)值('1116737')
插入@numbers(num)值('1116691')中
插入@numbers(num)值('1116364')
插入@numbers(num)值('1115635')
插入@numbers(num)值('909014')
插入@numbers(num)值('760195')
插入@numbers(num)值('689981')
插入@numbers(num)值('604787')
插入@numbers(num)值('1116217')
插入@numbers(num)值('1104482')
插入@numbers(num)值('869990')
插入@numbers(num)值('886290')中
插入@numbers(num)值('1115893')
选择@i=1,
@z=从@numbers开始的计数(*)
选择@number\=SubString(mess,PATINDEX('%[0-9]]',mess),Len(mess)),
@数字=子字符串(@number,0,PATINDEX(“%[^0-9]”,@number))
从…起
@原始信息
其中i=1
而(@我非常感谢你。我完全迷路了。奎师那,没有写“谢谢你”,如果答案有帮助,你可以投赞成票,或者接受,或者两者都接受。否则,没关系。我将把它留在这里,因为希望它能帮助别人,对我来说,这是sql中的一个很酷的练习。谢谢你的问题。你用python提问,我用sql回答,这真的是我的错。