sql-server - 使用连接字符串+'数字增量'更新多条记录
问题描述
我有一个名为“bbe.case”的表,其中包含以下示例数据:
|---------------------|------------------|------------------|
| Id | Name | Phone |
|---------------------|------------------|------------------|
| 3455 | Johny | `123456 |
|---------------------|------------------|------------------|
| 3457 | Dora | 342754 |
|---------------------|------------------|------------------|
而不是在 Name 列中使用真实姓名,我想更改为“Name 1”、“Name 2”、“Name 3”...“Name 1003”等等,如下所示:
|---------------------|------------------|------------------|
| Id | Name | Phone |
|---------------------|------------------|------------------|
| 3455 | Name 1 | 123456 |
|---------------------|------------------|------------------|
| 3457 | Name 2 | 342754 |
|---------------------|------------------|------------------|
'
'
'
|---------------------|------------------|------------------|
| 4453 | Name 999 | 12345 |
|---------------------|------------------|------------------|
| 4454 | Name 1000 | 345754 |
|---------------------|------------------|------------------|
感谢您对此的任何指导。
解决方案
我希望这个样本符合您的要求:
CREATE TABLE #TempTbl (
[Id] int,
[Name] nvarchar(255),
[Phone] nvarchar(255)
)
INSERT INTO #TempTbl
VALUES
(20, 'Johny', '514545'),
(30, 'Hassan', '514545'),
(40, 'Yahya', '514545'),
(50, 'Waleed', '514545'),
(60, 'Shreem', '514545')
UPDATE t
SET t.[Name] = d.[NewName]
FROM #TempTbl t JOIN (
SELECT t.[Id], CONCAT('Name ', ROW_NUMBER() OVER (ORDER BY [Id])) AS 'NewName', t.Phone
FROM #TempTbl t
) d ON t.[Id] = d.[Id]
SELECT * FROM #TempTbl
推荐阅读
- css - 没有内容的 CSS 网格边框
- spring - 在 RabbitListenerErrorHandler 中发送回复但仍然是 NACK 消息?
- docker - Firefox 在 Docker 中运行时被 sigbus 杀死
- r - MuMIn 的疏通功能中的“子集”命令是否适用于随机效果?
- qt - 如何在按钮单击时多次增加 SwipeView QML 索引
- php - 尝试重复代码时功能中断页面
- python - 我正在尝试创建一个计算循环数据框的 z 分数的函数
- c++ - C++:打印 unicode 字符
- java - Spring Rest - 发布多个文件
- mysql - MySQL INNER JOIN 返回一行,但从前端,它显示没有行