Обновить значение в TSQL - PullRequest
       92

Обновить значение в TSQL

0 голосов
/ 28 апреля 2020

У меня есть строки родителей (P) и детей (C) в одной таблице. Они связаны по ID и RefID соединению. Это выглядит так (пример данных):

|        Value        |        ID        |         RefID       |        Type      |
|---------------------|------------------|---------------------|------------------|
|          0          |        1         |          0          |         P        |
|          5          |        2         |          0          |         P        |
|          0          |        3         |          1          |         C        |
|          3          |        4         |          1          |         C        |
|          0          |        5         |          2          |         C        |

Мне нужно обновить столбец Value до 1, если type = P (Parent) и Value = 0. Также следует обновить все Value до 1 для детей этого родителя.

Результат должен быть:

|        Value        |        ID        |         RefID       |        Type      |
|---------------------|------------------|---------------------|------------------|
|          1          |        1         |          0          |         P        |
|          5          |        2         |          0          |         P        |
|          1          |        3         |          1          |         C        |
|          1          |        4         |          1          |         C        |
|          0          |        5         |          2          |         C        |

Есть ли способ сделать это в одном запросе SQL? Каков наилучший подход?

...