0
我有一個單列表, 我想修改原始表中的行並將它們作爲新行插入。SQL修改並插入原始表中的新行
originalTable - >| xyz |
--------
| abc1 |
需要一個SQL專家來此查詢重構爲一個單一的SQL查詢,如果possble,(這裏是想我已經做了,
1)在這裏,我創建兩個單獨的臨時表來完成所有的處理
2),然後將它們加入到原始表,
我想消除這些表的創建,如果我能在單個語句執行所有的以下查詢)
create table #tmp1(
xyz varchar(10)
)
create table #tmp2(
xyz varchar(10)
)
insert into #tmp1 (xyz)
select xyz from originalTable
insert into #tmp2 (xyz)
select xyz from originalTable
update #tmp1(xyz)
select xyz = (SUBSTRING(xyz, 1, 8)) || 'P'
update #tmp2(xyz)
select xyz = (SUBSTRING(xyz, 1, 8)) || 'R'
insert into #originalTable (xyz)
select xyz from #tmp_1
UNION
select xyz from #tmp_2
originalTable - > | xyz |
--------
| abc1 |
| abcP |
| abcR |
您確定您使用的是MySQL嗎? MySQL不使用'#'作爲臨時表,它使用'CREATE TEMPORARY TABLE'。 – Barmar
它使用'CONCAT'函數進行連接,而不是'||'。你真的在使用什麼RDBMS? – Barmar