sql - SQL:如何使用窗口函数更新来自特定选择的列值(东西,密集排名,结束)
问题描述
这就是我想做的:
UPDATE TableA
SET ColumnA = SELECT stuff(ColumnA, 1, 2, 11+dense_rank() over(order by left(ColumnA, 10))) from TableA
WHERE Year = '2021'
AND Type = 'LA'
我想将列的值设置为该 SELECT 的值
解决方案
您可以使用可更新的 CTE:
WITH cte AS (
SELECT *, STUFF(ColumnA, 1, 2, 11 +
DENSE_RANK() OVER (ORDER BY LEFT(ColumnA, 10))) AS new_val
FROM TableA
WHERE Year = '2021' AND Type = 'LA'
)
UPDATE cte
SET ColumnA = new_val;
推荐阅读
- angular - 如何以角度创建弹出窗口
- r - `sym()` 对 tidyeval 有什么作用?
- r - R 安装以前的版本包 NAMESPACE 文件丢失
- hadoop - 如何在将 hive 作业提交到 dataproc 集群时执行 gcp 存储桶中的 hive 查询列表(在我的情况下为 gs:/hive/hive.sql")
- r - 顺序启动停止时间 R 之间的差异
- ios - 当我删除然后在tableview上添加一行时,它会添加删除的行
- c++ - 模拟流进行测试
- python-3.x - 向 3D 散点图添加标签不起作用
- node.js - API调用后Docusign文档空白
- reactjs - React 中的上下文总是空对象