sql - 更新 SQL 中的多个值
问题描述
我想做这样的事情
Update Tenancy
set Text5 = ('55', '57', '89')
where PK in ('1', '2', '3')
我正在使用 1000 PKs 进行此操作,因此只是在寻找一种快速且安全的方法。
这是我正在寻找的输出:
pk text5
--------------
1 55
2 57
3 89
解决方案
使用这样的表值构造函数:
WITH
T AS (SELECT * FROM (VALUES ('1', '55'),
('2', '57'),
('3', '89')
) AS TBL (pk, text5)
)
UPDATE TNC
SET Text5 = T.text5
FROM Tenancy AS TNC
JOIN T ON TNC.PK = T.PK;
当心......这个构造函数被限制为正好 1000 个元组!
推荐阅读
- powershell - 如何处理 PowerShell 脚本中的 tf.exe 错误
- git - 为什么 git diff 与 git diff --staged 下的输出不同?
- java - 如何简化移动多个项目?
- android - 在 CoordinatorLayout 中使用带有 behavior_overlapTop 的浮动操作按钮
- javascript - jQuery UI 日期选择器 - 通过单击另一个按钮更改范围
- python - 将 numpy 向量拉伸到任意长度而不进行插值
- javascript - 在 JS 中隐藏或显示元素不起作用
- python - 使用 Scrapy 抓取单个链接
- javascript - 每次加载页面时仅自动单击一次
- asp.net-web-api - Web API 可从 MVC 代码访问,但从网站访问时出现 404 错误