简体   繁体   English

更新并选择一个语句(带有1个WHERE子句)

[英]Update AND select in one statement (with 1 WHERE clause)

How can I simplify the following SQL statement to 1 WHERE clause: 如何将以下SQL语句简化为1个WHERE子句:

SELECT * 
FROM tabA 
WHERE (colCar IS NULL OR colCar = '') 
   OR (colBike IS NULL OR colBike = '') 
   OR (colTrain IS NULL OR colTrain = '')

UPDATE tabA 
SET Distance = 999 
WHERE (colCar IS NULL OR colCar = '') OR 
      (colBike IS NULL OR colBike = '') OR 
      (colTrain IS NULL OR colTrain = '')

This statement makes no sense, but it is working fine. 该语句没有任何意义,但可以正常工作。

I just want avoid to use the WHERE clause twice. 我只想避免两次使用WHERE子句。

Some ideas? 有什么想法吗?

Thanks in advance! 提前致谢! Mike 麦克风

SQL Server SQL服务器

SELECT * 
FROM tabA 
WHERE (colCar IS NULL OR colCar = '') 
   OR (colBike IS NULL OR colBike = '') 
   OR (colTrain IS NULL OR colTrain = '')

UPDATE tabA 
SET Distance = 999 
WHERE (colCar IS NULL OR colCar = '') 
   OR (colBike IS NULL OR colBike = '') 
   OR (colTrain IS NULL OR colTrain = '')

Code is working fine 代码工作正常

You can use OUTPUT clause to return updated rows: 您可以使用OUTPUT子句返回更新的行:

UPDATE tabA 
SET Distance = 999
OUTPUT deleted.colCar
     , inserted.colCar
     , deleted.colBike
     , inserted.Distance
WHERE (colCar IS NULL OR colCar = '') OR 
      (colBike IS NULL OR colBike = '') OR 
      (colTrain IS NULL OR colTrain = '')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM