回答

收藏

从SELECT插入但更改一列?

技术问答 技术问答 135 人阅读 | 0 人回复 | 2023-09-14

想知道是否有一种方法可以将一行中的一行插入另一张表中,但一列除外?% f  q* u, d7 ^8 a" q
对于有限的列数,这当然很容易,但是当列数增加时,列出所有列会很麻烦。
( `# c1 ?1 I/ Z+ w7 o: M2 Z我在想以下方面的事情:) Y8 ~+ `# u1 N0 v1 K
Insert into table
+ G* l3 r* l2 \select * replace col1 with current date
8 C5 T0 K$ T  k7 @, ~from table
7 p# Y) d/ C+ A: n$ a& G( Rwhere yada yada yada
7 B& Q9 ]/ o5 k! V# j0 X, M一种可能是复制一行并执行和更新,但是由于索引或其他原因,这不是一种选择。( q. k# D8 l$ ]2 p( w* D
有任何想法吗?
* {, K  ]; h  M; B- _编辑:这是DB2 v10,但问题出在纯出于好奇。只是想知道是否有可能…3 r6 V& Q& N5 x/ x7 y
                : G! ~: z- f  L# h( R1 z7 y5 z
解决方案:
; [- u7 D1 I  k- V# v$ H                * u( @: J: ~1 _& G' d: S

1 c5 ]& [9 w; X' E/ Z, x/ U: Z4 Z7 {
                使用Oracle
$ \+ T' e7 ?$ p1 D- t6 V  U6 b, QDECLARE
/ N; L% g7 Q% H% E, o4 H$ Y7 lCURSOR CUR_D IS$ C. ^3 i8 n4 J5 e/ u3 G
  SELECT *
4 B8 z  v) {7 S$ }9 y  FROM TABLE- o9 e1 A0 e8 \# J7 u: k
  WHERE id = some id;
8 K! h% T( @5 H- JROW_D CUR_D%ROWTYPE;
" ^1 @- |( d" d# X# `BEGIN: K0 r5 x+ l" R, @% E5 f- R; [: g
  OPEN CUR_D;' h6 Q/ M( t$ ^7 i% ~- A/ ~2 P) Y
  FETCH CUR_D INTO ROW_D;2 _" U+ j8 E+ {4 [4 v' F
  CLOSE CUR_D;" d. W, l  y" d6 d0 v
  ROW_D.column := 'some data';
4 c: ?, W' V$ ~. R  INSERT INTO some table
2 V6 y) N/ L# B- A: W# H( A  VALUES ROW_D;
! e$ t1 l% L" Y5 dEND;
7 r5 {% l! f: j+ g* ?: {% h& `7 \, \' b/
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则