sql基于其他表值插入行

时间:2016-12-15 13:02:21

标签: sql sql-insert

我有两个名为table1和table2的表。 table1有key,condition,level和conditionvalue列,table2有key和value列。

table1行

for (int i=1; i<ARRAY_SIZE; i++) 
{
   if (main_array[i] < minimum)
   {
       minimum = main_array[i]; 
       index_min = i; // only if a new minimum is found update the index_min variable 
    } // note the extra brackets ;-)
}

我将从用户或其他来源获取输入(键和值)以及我需要根据以下条件插入到table2中的值。

如果key为1且值为&gt; 10或值等于5然后我需要插入。 如果key为2且value为&gt; 20或者值小于5然后我需要插入。

如何使用sql insert语句实现此目的。

2 个答案:

答案 0 :(得分:0)

试试这个:

IF EXISTS(
           SELECT 1
           WHERE (@Key=1 AND (@value>10 @value=5) ) OR (@Key=2 AND (@value>20 OR @value<5))
                                                                                            )

INSERT INTO Table2 (column1) VALUES (@values)

答案 1 :(得分:0)

试试这个:

INSERT INTO table2 (KEY, value)
  SELECT KEY , conditionVal 
    FROM table1 
    WHERE KEY IN
      (SELECT KEY
      FROM table1
      WHERE (KEY        =1
      AND (value        >10
      OR value          =5) )
      OR (KEY           =2
      AND (value        >20
      OR value          <5))
      AND 
    conditionVal IN
      (SELECT conditionVal
      FROM table1
      WHERE (KEY        =1
      AND (value        >10
      OR value          =5) )
      OR (KEY           =2
      AND (value        >20
      OR value          <5))