求一简单Insert语句(100分)

  • 主题发起人 主题发起人 LuckyJackie
  • 开始时间 开始时间
L

LuckyJackie

Unregistered / Unconfirmed
GUEST, unregistred user!
一个表table1,已有若干条记录,每个记录有n个字段(a,b,c,d。。。),现在要:

在表中插入一条记录,要求该记录中所有字段的内容均来源自同一个表中另一条记录(需要条件匹配,假设是a=value1),但是!!有两个例外,其中的字段b的值要=一个已知的值value2,而其中的字段c的值要=来源字段中d的值。

不知道我讲清楚了没有^_^
测试通过马上给分。
 
insert into table1
select * from table1 where ...
 
INSERT INTO table1 (a,b,c,d...) SELECT a,b,c,d... FROM table1 WHERE (a=value1) and (b<>value2) and (c<>d)
 
insert into table1(
select a from table1 where ...,select b from table1 where ..., ...)
也就是新添加的每个字段的值均用一个select 语句求得。
你不防先用这个方法试试。
 
通告一下,表中的字段很多,很多,相当多。。。
我的意思是,可以不用列出所有字段,除了有特殊要求的两个字段。
 
to luzhouman,
b是要等于Value2,c是要等于来源字段中的d,并且都是所要的结果而非条件,请继续努力。。。
 
那就哪个有特殊要求的,哪个就用select语句实现也可以的
 
-to luzhouman,
-b是要等于Value2,c是要等于来源字段中的d,并且都是所要的结果而非条件,请继续努-力。。。

这样:

INSERT INTO table1 (a,b,c,d...) SELECT a,value2 as b,d as c1,d... FROM table1 WHERE (a=value1) and (b=value2)
 
insert into table1 select a,'value2',d,d,e from table1 where a='value1'
 
to liyoumin,
a, b, c有可能并不是起始的字段,而且你这样写的话好像其他字段会被赋空值,而不是来自于另一记录的值。
另外,不知道Insert into能不能在同一个表内进行自我复制,或者说在什么条件下可能是可以的,在什么条件下可能又不行?
谢谢大家关注。
 
insert into table1 select a,'value2',d,d,e... from table1 where a='value1'
如果‘a, b, c有可能并不是起始的字段,’的话,只好在 insert into 后面把字段一一列出了。要想实现插入的记录 ‘来自于另一记录的值’,只能通过过滤条件控制了 where a='value1' 。另 Insert into 能在一个表内进行自我复制!行不行你自己试一下就知道了,哈哈哈。希望对你有所帮助。
 
insert into table1(a,b,c,d)
select a,b,c,c from table1 where a=value and b= value2
就是在取字段的时候取两个c字段就ok了。
 
你就写个存储过程吧,啊!!
 
现在的问题是:
Insert into 一条记录后,如何继续用Sql对该记录进行改变,我的意思是,就像TTable一样,插入后记录光标会定位到该记录上,接着就可以用FieldByName直接修改记录中某字段的值?谢谢
 
多人接受答案了。
 

Similar threads

后退
顶部