SQL Server -基于另一个表更新值

brqmpdu1  于 2023-01-12  发布在  SQL Server
关注(0)|答案(2)|浏览(137)

我有两张table:
表一

  • 包裹_编号
  • 池类型

表二

  • 包裹_编号
  • 需要水

我想知道表1的"pool"列是否有值,然后将表2的"need_water"列更新为yes。
这是我想在2号桌吃的东西。
表一
| 包裹_编号|池类型|
| - ------|- ------|
| 1个|圆|
| 第二章|椭圆形|
| 三个|无效|
| 四个|矩形|
表二
| 包裹_编号|需要水|
| - ------|- ------|
| 1个|是的|
| 第二章|是的|
| 三个|没有|
| 四个|是的|

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

谢谢

6tdlim6h

6tdlim6h1#

一条update语句就可以解决这个问题:

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
hi3rlvi2

hi3rlvi22#

带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

相关问题