sql - 需要使用更新通过以下查询获取的数据的备用行。无法在更新语句ms sql server中使用寡妇功能
问题描述
我需要以下查询的帮助:我想在给定某些条件的情况下更新表的每个备用行,其中包括多个表我无法在更新下使用 windows 功能如何修改此查询以使其工作
UPDATE loanacct
SET
collection_officer_no =
(
CASE
WHEN
ROW_NUMBER()OVER (ORDER BY acctrefno) %2 = 0
THEN
4
ELSE
7
END
)
WHERE acctrefno in
(
SELECT
[acctrefno]
FROM
[NLS].[dbo].[loanacct] L
INNER JOIN nlsusers U ON U.userno = L.collection_officer_no
WHERE
U.username like 'house' AND
L.loan_group_no in ( '2', '4', '5') AND`enter code here`
L.days_past_due > 25 AND
status_code_no = 0)
解决方案
您可以使用可更新的 CTE。这是伪 SQL,但应该让您走上正确的道路:
WITH CTE AS(
SELECT {YourColumns},
ROW_NUMBER() OVER (/* PARTITION BY ??? */ ORDER BY {Column} AS RN
FROM YourTable
WHERE ...
)
UPDATE CTE
SET ...
WHERE RN % 2 = 0;
推荐阅读
- python - sqlite3 正则表达式确实匹配反字符类
- digital-ocean - 在 Digital Ocean 上部署 Ghost One-Click Droplet:验证域时退出代码 1
- html - 如何使 div 和 button 大小相同?
- ios - 如何在 TableViewCell 中设置图标的背景颜色?
- python - 有什么方法可以在一维上使用线性回归或使用 LSTM 进行数字生成
- reactjs - 有谁知道 webdriver-io 是否可以与 AWS 设备场一起使用?如何设置?
- c# - WebRequest.GetResponse():读取响应,即使是 401?
- node.js - 安装 React-Native/error msg 404 - 在这种情况下程序员必须做什么?
- runtime-error - 在 VGGish 模型中生成 tf 记录时出现 ResourceExhaustedError
- arrays - SwiftUI 在 For Each 中获取下一个循环的值