我有一个表,我在其中根据条件复制数据,然后将其插入同一个表中,并使用不同的ID
. 如下:
SET IDENTITY_INSERT Table ON
INSERT INTO Table (ID,GroupID,Name,link,etc..)
SELECT
(SELECT MAX(ID) FROM Table) + ROW_NUMBER()OVER (ORDER BY ID),
10500,
Name,
link
FROM Table
WHERE GroupID =10400
SET IDENTITY_INSERT Table OFF
这给了我下表
**ID | GroupID | Link**
3 | 10400 |/testsDatas/10400/Uploads
4 | 10500 |/testsDatas/10400/Uploads //this is a new entry that the above query will enter.
我的问题是当上述查询复制一行时,我该如何更改/testsDatas/10400/
为/testsDatas/10500/
?
所以它看起来像下面这样
**ID | GroupID | Link**
3 | 10400 |/testsDatas/10400/Uploads
4 | 10500 |/testsDatas/10500/Uploads //desired output
有多行数据,还有更多我没有添加的列。我该如何实现?
使用REPLACE
对你有用吗?一个简单的例子:]
DECLARE @table TABLE ( ID INT, name VARCHAR(50), link VARCHAR(50) )
INSERT INTO @table
VALUES
( 3, '10400', '/testsDatas/10400/Uploads' )
INSERT INTO @table
SELECT
(
SELECT MAX(ID)
FROM @table
) + ROW_NUMBER() OVER (ORDER BY ID),
10500,
REPLACE( link, name, 10500 )
FROM @table
SELECT *
FROM @table
我的结果:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句