table 数据库表
此数据库表中,Name,与Nickname一致
Name | Age | Sex | Nickname | Work |
---|---|---|---|---|
小红 | 20 | 女 | 小红 | 教师 |
小明 | 28 | 男 | 小明 | 警察 |
小亮 | 30 | 男 | 小亮 | 律师 |
需求:向表中再为小红插入一条职业信息。其中,Name,Age,Sex,Nickname字段均与原数据一致,只有Work不同。如过想要插入数据变动不大时,可以使用此语句,sql语句如下:
Insert into table(Name,Age,Sex,Nickname,Work)
select top 1 b.Name, b.Age, b.Sex, b.Name AS Nickname,'客服'
from table b where b.Name='小红';
结果:
Name | Age | Sex | Nickname | Work |
---|---|---|---|---|
小红 | 20 | 女 | 小红 | 教师 |
小明 | 28 | 男 | 小明 | 警察 |
小亮 | 30 | 男 | 小亮 | 律师 |
小红 | 20 | 女 | 小红 | 客服 |
若想同时为一个人插入两条职业信息,sql语句如下:
Insert into table(Name,Age,Sex,Nickname,Work)
select top 1 b.Name, b.Age, b.Sex, b.Name AS Nickname,'客服' from table b where b.Name='小红'
UNION
select top 1 b.Name, b.Age, b.Sex, b.Name AS Nickname,'司机' from table b where b.Name='小红'
**注意:
1、select语句中一定要限制查询到的记录数为1,否则插入会报错。
2、要求目标表Table必须存在,由于目标表Table已经存在,所以我们除了插入源表Table b的字段外,还可以插入常量。(两个表可以是同一个)
**