sql-server - 如何为偶数行和奇数行设置值?
问题描述
我有下表
db_name server_name approver
cube1 server1
cube1 server2
cube2 server3
cube2 server4
我想用以下内容更新每个偶数行(假设索引从 0 开始)和奇数行上的批准者列:
偶数(第 1 行):批准人 1 奇数(第 2 行):批准人 2
我的最终目标是让桌子看起来像这样
db_name server_name approver
cube1 server1 approver1
cube1 server2 approver2
cube2 server3 approver1
cube2 server4 approver2
我没有主键/ID 列,也不打算包含一个
我怎样才能从这个声明开始实现我正在寻找的东西?
UPDATE Table1
SET approvers = 'approver1'
GO
解决方案
你可以使用ROW_NUMBER和modulo,但你需要一个 id 列
像这样的东西(尚未测试)。你需要同样的“偶数”
-- get all ids from the odd numbers
With TableData As
(
SELECT ID, ROW_NUMBER() OVER (ORDER BY id ASC) AS RowNumber
FROM Table1
where (RowNumber, % 2) = 1 --odd
)
-- update the odd numbers with approver1
UPDATE Table SET approvers = 'approver1'
FROM Table1
INNER JOIN TableData ON Table1.ID = TableData.ID
推荐阅读
- python - 从 git 提交、删除和获取后文件更改的 MD5 哈希
- c - memset 中 `void*` 返回的目的是什么?
- python - 为什么我的 setuptools 在 Python 3.9 中不起作用?
- angular - Angular 10 - 如何在没有 StompJS 的情况下实现 WebSocket
- android - DJI 将 SDK 集成到应用程序中冻结并且不执行任何操作
- docker - 无法使用 Rider 调试使用 docker 容器和 docker-compose 构建的 .net 核心应用程序。容器退出代码 139
- android - 我的代码在模拟器上运行,但在真实设备上遇到错误
- linux - 查找具有特定权限的文件
- python - Pandas - 用最少的步骤替换/合并行的方法
- reactjs - 如何让 Django 在 Ubuntu 18.04 上使用 Apache2 服务 React?