簡體   English   中英

更新並選擇一個語句(帶有1個WHERE子句)

[英]Update AND select in one statement (with 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 = '')

該語句沒有任何意義,但可以正常工作。

我只想避免兩次使用WHERE子句。

有什么想法嗎?

提前致謝! 麥克風

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 = '')

代碼工作正常

您可以使用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