sql-server - 如何从“使用输出子句更新”查询返回不同的结果
问题描述
UPDATE top (5) Alert SET Notify = 1 OUTPUT inserted.OrderNo as orderNo,inserted.UserId as userId
where UserId = ('rekon') and Notify = 0
这是我的带有输出子句的更新查询,所有具有匹配 userId 的条目的记录都得到更新,但是有没有一种方法可以限制不同的 OrderNo 作为输出子句的结果?
UserId OrderNo Notify ProcessedTime
rekon 3006856996 0 25:08.7
rekon 3006856996 0 12:05.9
rekon 3006856996 0 18:56.9
rekon 3006857268 0 12:27.0
rekon 3006857015 0 20:59.9
rekon 3006857015 0 14:08.8
rekon 3006856996 0 47:16.0
rekon 3006857015 0 27:11.3
rekon 3006857015 0 49:20.7
解决方案
OUTPUT 子句的定义如下:
::= {
[ 输出到 { @table_variable | 输出表 } [ ( 列列表 ) ] ]
[ 输出 ] } ::= { | 标量表达式 } [ [AS] column_alias_identifier ]
[ ,...n ]::= { 已删除 | 插入 | from_table_name } 。{ * | 列名}
| $行动
所以你可以像这样使用它:
UPDATE TOP (5) Alert
SET Notify = 1
OUTPUT inserted.OrderNo as orderNo,
inserted.UserId as userId
INTO #tmpNotify
WHERE UserId = ('rekon')
AND Notify = 0
-- then select it:
SELECT distinct orderNo,
userId
FROM #tmpNotify
推荐阅读
- java - 找不到文件夹位置 (java.lang.IllegalStateException)
- hadoop - 为什么映射器和减速器分配在 hive tez 上?
- android-instant-apps - 无法在手机上从 AS 启动即时应用程序
- php - 检查 PDO 是否支持 else 使用 mysqli() php
- docker - Docker 容器点击 iptables 进行代理
- android - 错误 org.json.JSONException:索引 2 超出范围
- android - 当 TextView 高度为换行内容时,如何将图像和文本重叠?
- wordpress - 创建简码
- r - 计算数据框中每 2 列之间的字符串以查找重叠
- javascript - 如何编写程序从 url 下载一堆图像并将其上传到 AWS S3 服务器