如何在SELECT语句中刻意复制指定行(无需新建表及INSERT)
实现特定教师行在SELECT结果中重复翻倍的SQL语句
可以通过UNION ALL将原表数据与筛选出的目标教师数据合并,无需创建新表或执行INSERT操作,就能让指定教师的行在输出中翻倍:
SELECT Teacher, Grade, District FROM teachers UNION ALL SELECT Teacher, Grade, District FROM teachers WHERE Teacher = 'Mr. Cameron';
代码说明:
- 第一个
SELECT语句取出表中所有原始数据,包含所有教师的行。 - 第二个
SELECT语句仅筛选出Teacher为Mr. Cameron的行,再通过UNION ALL将这部分数据追加到原始结果后。 - 由于
UNION ALL不会去重,Mr. Cameron的原有行加上新增的筛选行,正好实现出现次数翻倍,其他教师的行仅保留原始次数。
执行该语句后,输出结果将与你期望的完全一致:原有的2条Mr. Cameron行变为4条,其余教师的行保持不变。
内容的提问来源于stack exchange,提问作者mike_mussini
相关产品推荐
相关产品推荐

