回答

收藏

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

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

DodgyOldTable”和“MainTable关系是1:1。表选项包含在选项描述字段中Val1”,“选项Val2”和“选项Val3记录。我需要从DodgyOldTable选择一个插入MainTable_Option中。像这样的东西:
4 U! W% u) e% t8 e1 cINSERT MainTable_Option ([MainTableID],[OptionID])SELECT ID,(CASE WHEN OptionVal1 = 'y' THEN     (SELECT OptionID      FROM Option      WHERE OptionDesc = 'OptionVal1') ENDFROM DodgyOldTable如果可能的话,我想避免使用几种不同的方法select句子执行插入操作。4 h& h2 @/ i% x, i' }0 n
替代文字http://www.freeimagehosting.net/uploads/863f10bf5f.jpg
+ n$ L( r: l0 P0 y7 x: t                                                                0 N% a- j* V( {$ B) X7 z5 I
    解决方案:                                                                % B, U4 ~  A: \2 h. Y7 y9 I
                                                                INSERT 1 ?+ C1 R! k7 k& i
                        MainTable_Option ( Q% }4 e. g8 t( ?) v; [* X( J! {
                        (
" ^  A4 C6 i# D' P7 r% t6 u                        MainTableID,4 V) o* O+ x% ?. p: h
                        OptionID4 I  m1 f$ Q& J$ C% H- m  X$ y
                        )" M5 n4 l; l; _; r3 d
                SELECT
8 g* @+ y' l- G$ H                        d.ID,
( {/ ~' Z- `4 a8 _9 z                        o.OptionId
- R* _' u, [& b( L                FROM/ I0 ]$ I- T9 O3 V$ Q3 D% d
                        DodgyOldTable d2 S7 l4 a/ g6 `- ~8 v
                        INNER JOIN Option o ON
2 x0 K4 v' p; l; C" k# `2 v, J                                (d.OptionVal1 = ‘Y’ AND o.OptionDesc = ‘OptionVal1’) OR
' Q* w( |: |1 l# M1 v& ?                                (d.OptionVal2 = ‘Y’ AND o.OptionDesc = ‘OptionVal2’) OR
* E5 V0 m6 v$ U* ]                                (d.OptionVal3 = ‘Y’ AND o.OptionDesc = ‘OptionVal3’)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则