2013-04-21 46 views
0

嗨,我尝试做以下和我卡住想法有点:SQL帮助 - 插入列到基于不同列的表值

我有这样一组数据:

Column1(int)  Column2(int)  Column3(Varchar) 

0     1234    ABC-0 
1     1234    ABC-1 
2     1234    ABC-2 
3     1234    ABC-3 
4     1234    ABC-4 

0     6789    DEF-0 
1     6789    DEF-1 
2     6789    DEF-2 
3     6789    DEF-3 
4     6789    DEF-4 

我想有表更新,使额外的行插入其中,列一个的值设置为999和栏3的值,如下图所示不同COLUMN2值:

Column1(int)  Column2(int)  Column3(Varchar) 
0     1234    ABC-0 
1     1234    ABC-1 
2     1234    ABC-2 
3     1234    ABC-3 
4     1234    ABC-4 
999    1234    ABC ********New row****** 

0     6789    DEF-0 
1     6789    DEF-1 
2     6789    DEF-2 
3     6789    DEF-3 
4     6789    DEF-4 
999    6789    DEF ********New row****** 

我敢NE w至SQL和任何帮助将不胜感激,

只是为了澄清这将自动通过脚本来运行一个新的数据集被放入数据库

干杯

+1

只需插入INSERT查询..... – 2013-04-21 11:04:30

+0

嗨LolCoder,我知道这一点,但在列中的值可以根据不同的数据输入更改,所以我不能这样做静态 - 我需要一个动态插入语句分析不同的Column2值,并插入一行每distint Column2值像上面.. – user1694873 2013-04-21 11:08:08

+2

对不起,我还是没有得到你......我的想法是简单地插入和获取上述格式的数据,我们可以如上所述....不是吗? – 2013-04-21 11:11:31

回答

1

的总体结构将是什么如:

INSERT INTO your_table (Column1, Column2, Column3) 
SELECT DISTINCT 999, Column2, substr(Column3, 1, 3) 
FROM your_table 

但请注意,这只是一个指导。您的substr函数调用可能会有所不同,具体取决于数据的确切结构和您正在使用的数据库引擎。例如。在SQL Server上它可能与MySQL上的不同。

+1

上面的查询插入表的所有行....可能是OP是不是要求.... – 2013-04-21 11:17:00

+1

@LolCoder我不认为我理解你的评论。查询将为column2的每个子集和column3的开始拉正好一行。 OP要求为每个这样的唯一组插入一个“摘要”行,这正是上面的代码所做的。 – 2013-04-21 11:18:05

+0

干杯@Alecks G这正是我需要的! – user1694873 2013-04-21 11:21:22

相关问题