回答

收藏

使用SELECT执行INSERT插入多个记录

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

DodgyOldTable”和“MainTable关系是1:1。表选项包含在选项描述字段中Val1”,“选项Val2”和“选项Val3记录。我需要从DodgyOldTable选择一个插入MainTable_Option中。像这样的东西:
! c9 A" [" [5 |& }, uINSERT MainTable_Option ([MainTableID],[OptionID])SELECT ID,(CASE WHEN OptionVal1 = 'y' THEN     (SELECT OptionID      FROM Option      WHERE OptionDesc = 'OptionVal1') ENDFROM DodgyOldTable如果可能的话,我想避免使用几种不同的方法select句子执行插入操作。
6 C' p1 Z! T# E5 x替代文字http://www.freeimagehosting.net/uploads/863f10bf5f.jpg; y% m  V# o; x1 ~2 U: w0 z5 H
                                                               
# a. M7 ]. N" `5 o/ j    解决方案:                                                               
9 T. M. a7 s* J4 c2 _& @                                                                INSERT 7 L1 X; b- q, H5 n  |, R8 h& ^
                        MainTable_Option . ^8 W) Q1 I( O: h+ `
                        (7 e. B2 m6 N& K  p5 ~9 q
                        MainTableID,9 I" _1 N, @, n5 V( y2 P' @! @: s
                        OptionID
2 h2 J  ^% J+ p9 M5 c, B                        )0 q! M; B' _9 a/ F# [3 M- N
                SELECT2 g4 V* ^' K0 s& R$ h' |
                        d.ID,7 G- q' _2 i* v# g& {4 [/ @
                        o.OptionId
& G# L$ [# t' J8 m' t* {# f$ l                FROM0 n0 ]( s3 b, `, L8 k* L
                        DodgyOldTable d, w" v9 h2 ~# \- {+ h
                        INNER JOIN Option o ON) e2 x4 @- _, o2 R) v
                                (d.OptionVal1 = ‘Y’ AND o.OptionDesc = ‘OptionVal1’) OR$ w# ~, r  F. p+ Y
                                (d.OptionVal2 = ‘Y’ AND o.OptionDesc = ‘OptionVal2’) OR  i. V0 h0 \1 u+ c
                                (d.OptionVal3 = ‘Y’ AND o.OptionDesc = ‘OptionVal3’)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则