sql-server - 如何将一条记录生成为两条记录,然后将它们插入到表中?
问题描述
我在sql server中有PKT表,结构(PKT(pso,day,msch,mskh,tkc,tkdu,st,mskh1))和另一个表(dong_bo(pso,day,msch,mskh,tk,psn,psc) )。对于 PKT 中的每一行,我需要将其生成为两行,然后将它们插入到 dong_bo 表中。例如:PKT 表。| pso | 天 | 女士 | 女士 | tkc | tkdu | 圣 | mskh1 | | --- | --- | ---- | ---- | --- | ---- | -- | ----- | | PKHT000105-12-20 | 2020 年 12 月 31 日 | 03 | 0802345 | C1411 | N3311 | 20000 | 7101259|
dong_bo 表:
pso | 天 | msch | 女士 | 传统知识 | psn | psc |
---|---|---|---|---|---|---|
PKHT000105-12-20 | 2020 年 12 月 31 日 | 03 | 0802345 | 1411 | 0 | 20000 |
PKHT000105-12-20 | 2020 年 12 月 31 日 | 03 | 7101259 | 3311 | 20000 | 0 |
我需要一个语句来在 SQL Server 中生成它。
解决方案
基本上你可以使用union all
语句作为方法:
insert into dong_bo
select pso, day, mskh, right(tkc, 4) tkc, 0 psn, st psc from PKT
union all
select pso, day, mskh1, right(tkdu, 4) tkc, st psn, 0 psc from PKT;
在线查看此SQL
结果:
+==================+============+=========+======+=======+=======+
| pso | day | mskh | tkc | psn | psc |
+==================+============+=========+======+=======+=======+
| PKHT000105-12-20 | 31/12/2020 | 0802345 | 1411 | 0 | 20000 |
+------------------+------------+---------+------+-------+-------+
| PKHT000105-12-20 | 31/12/2020 | 7101259 | 3311 | 20000 | 0 |
+------------------+------------+---------+------+-------+-------+
推荐阅读
- php - PHP用数组中的值替换字符串
- liferay - Liferay Service Builder 和 portlet 实例特定数据
- android - 删除资源 com.myapp.application:string/com_facebook_loginview_logged_in_using_facebook_f1gender 而不需要默认值
- angular - Angular 7 - 为选择/下拉框设置数据源
- android - 不确定如何完美使用 GradientDrawable
- api - 如何通过 Net core 中的 ZCRMSDK 从 zoho 服务器获取超过 200 条记录?
- python - pytest - Windows 致命异常:代码 0x8001010d
- android - 将 Dispatcher.Main 与 delay() 一起使用是个好主意吗?
- splunk - 获取整个事件的当前进程状态
- debugging - How to load debug symbols for the whole OVMF UEFI image in gdb?