sql查询问题。insert和select综合的语句

1000条数据,查出100条,
这100条数据不变。
根据这100条数据(某些字段属性改变)生成的新100条数据。插入到总数据库里,现在总数据为1100条。。

select * from a where a.p='111'查出100条。
对那100条数据备份一个,然后更新成a.p='222'我不想让原100条数据丢失。

更新好的.p=222的100条数据插入到原1000条数据中。

insert into a
select '222',a.其他列 from a where a.p='111'
你在插入的时候,把a.p这个111值,替换为222,这样就可以了
也就是说,用222代替你查出来的a.p这一列

举个例子吧
insert into a
select'222'(这里应该是a.p),a.a,a.b,a.c,a.d from a where a.p='111'
你可以试试看
要是不明白
可以hi我
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-28
然后更新成a.p='222'我不想让原100条数据丢失。
更新好的.p=222的100条数据插入到原1000条数据中。
我不知道是你表述不清楚还是不理解更新和插入的区别?
如下有一个例子供你参考,你给的信息太少,只能用别的表来代替了!用的是微软自带数据库。
---------------------------------------------------------------------

USE [Northwind]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--创建一个表来专门备份需要的信息,当然可以创建一个和原来一样的表了。
CREATE TABLE [dbo].[T_VSAM](
[ID] [int] NULL,
[Name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[SeoTitle] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
--开始备份伦敦雇员的数据
insert into [dbo].[T_VSAM] select EmployeeID,FirstName+LastName,Title from dbo.Employees where [City]='London'
--重新插入数据,把伦敦的雇员变成芝加哥的雇员,原伦敦雇员还存在数据库里。
insert into [dbo].[Employees]
([LastName]
,[FirstName]
,[Title]
,[TitleOfCourtesy]
,[BirthDate]
,[HireDate]
,[Address]
,[City]
,[Region]
,[PostalCode]
,[Country]
,[HomePhone]
,[Extension]
,[Photo]
,[Notes]
,[ReportsTo]
,[PhotoPath])
select [LastName]
,[FirstName]
,[Title]
,[TitleOfCourtesy]
,[BirthDate]
,[HireDate]
,[Address]
,'Chicago'
,[Region]
,[PostalCode]
,[Country]
,[HomePhone]
,[Extension]
,[Photo]
,[Notes]
,[ReportsTo]
,[PhotoPath]
from dbo.Employees where [City]='London'
第2个回答  2010-09-28
直接替换你原来的这个字段值就行了
在select的时候 用 select replace(p,'111','222') from a