【发布时间】:2014-04-30 16:51:18
【问题描述】:
我正在做一些实验,使用 INSERT INTO 将值从一个表移动到另一个表,但我不太确定如何在将旧表中的值(并添加一个字符串)移动到新表之前检查它.
这是我的表定义
旧网络
user_id | network_id | network_url
2 3 /whatever/something.html
新网络(理想结果)
user_id | network_id | network_url
2 3 www.sitename3.com/whatever/something.html
网络
network_id | network_prefix
1 www.sitename1.com
2 www.sitename2.com
3 www.sitename3.com
所以,这里发生的事情是我正在使用 network_id 的查找表,并将 network_prefix 添加到 [network_url]。如果 old_network.network_url 不包含前缀,我需要将它添加到 new_network.network_url 的开头。
移动原始数据是很容易的部分,但我不知道如何验证并在必要时添加字符串。以下是逻辑的概要:
INSERT INTO dbo.new_network (user_id,network_id,network_url)
SELECT user_id,network_id,network_url FROM old_network
if old_network.network_id = 1 and network_url like 'www.sitename1.com%'
move it
else
set network_url = 'www.sitename1.com' + network_url
dbo.network 中的其他网络以此类推
输入这个并查看它让我有点了解,但我需要声明一个临时表吗?使用参数?任何想法表示赞赏。 使用 mssql 2008
【问题讨论】:
-
为什么不先修改数据再插入?
标签: sql sql-server sql-server-2008 insert-into