簡體   English   中英

SQL 服務器 - 基於另一個表更新值

[英]SQL Server - Update value based another table

我有 2 個表:

表格1

  • 包裹編號
  • 池類型

表2

  • 包裹編號
  • 需要水

我想知道表 1 的“池”列是否有一個值,而不是將表 2 的“need_water”列更新為是。

這是我想要的表 2。

表格1

包裹編號 池類型
1個 圓圈
2個 橢圓形
3個 Null
4個 長方形

表 2

包裹編號 需要水
1個 是的
2個 是的
3個
4個 是的
 if exists(select a.pool_type 
 from table1 a
    where a.parcel_number = b.parcel_number)
    Begin
        Update b
        set b.need_water = 'Yes'
        from table2 b
        end
   else
    Begin
        Update b
        set b.need_water = 'No'
        from table2 b
    End

謝謝

一個更新語句應該能夠解決這個問題:

UPDATE t2
    SET t2.need_water = CASE WHEN t1.parcel_number IS NOT NULL THEN 'Yes' ELSE 'No' END
FROM table2 t2
   INNER JOIN table1 t1
   ON t2.parcel_number = t1.parcel_number

帶有 JOIN 的 UPDATE 將起作用

UPDATE  t2
SET     need_water = 'yes'
FROM    Table1 t1
        JOIN Table2 t2
            ON t1.parcel_number = t2.parcel_number
WHERE   t1.pool_type IS NOT NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM