回答

收藏

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

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

DodgyOldTable”和“MainTable关系是1:1。表选项包含在选项描述字段中Val1”,“选项Val2”和“选项Val3记录。我需要从DodgyOldTable选择一个插入MainTable_Option中。像这样的东西:
4 u( t7 W2 N3 c+ @* a5 ^5 mINSERT MainTable_Option ([MainTableID],[OptionID])SELECT ID,(CASE WHEN OptionVal1 = 'y' THEN     (SELECT OptionID      FROM Option      WHERE OptionDesc = 'OptionVal1') ENDFROM DodgyOldTable如果可能的话,我想避免使用几种不同的方法select句子执行插入操作。+ I$ E2 O2 G$ y* V9 T5 c: n
替代文字http://www.freeimagehosting.net/uploads/863f10bf5f.jpg: N, @+ N, b/ e/ N$ [0 m
                                                                7 ~3 N/ `+ t* w
    解决方案:                                                               
+ p& V, u  W9 j7 E- z4 N2 c( k5 u                                                                INSERT
' o' ?( w2 n  Q& c: M$ O# r2 w                        MainTable_Option
9 {+ x; W" y% a) ?0 V, W6 Z( a, B                        (  o0 i' k0 E' [3 `- T6 J, P! v9 ]
                        MainTableID,
- f% _% n% a' ^. Z) a                        OptionID
+ G+ U  ~( ?& Y2 O4 j                        )
7 H5 z9 F- O3 c$ v3 [8 G                SELECT' r3 [, l: Z1 U; D& w9 |
                        d.ID,! z- [! H2 ]4 w6 G
                        o.OptionId& R3 \7 ?2 z8 ?( n" H$ D
                FROM
% \( E7 R6 \. k  T                        DodgyOldTable d
" Q2 c/ Z! ?. c7 Q                        INNER JOIN Option o ON
- `0 ~- q4 M5 `  s$ m. o2 T                                (d.OptionVal1 = ‘Y’ AND o.OptionDesc = ‘OptionVal1’) OR
" x0 M, `" n5 u8 [# T0 y! s1 r                                (d.OptionVal2 = ‘Y’ AND o.OptionDesc = ‘OptionVal2’) OR2 N' ~. o3 D) j2 \
                                (d.OptionVal3 = ‘Y’ AND o.OptionDesc = ‘OptionVal3’)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则