Обновление для переключения логического столбца в одном выражении

Я бы попытался выполнить следующие шаги:

1) Проверьте, есть ли бит байтового заказа

2) Проверьте, действительно ли файл UTF8

3) Используйте локальную кодовую страницу «ANSI» (ANSI, как ее определяет Microsoft)

Этап 2 работает, потому что большинство не ASCII-последовательностей в кодовых файлах, которые UTF8 недействительны UTF8.

2
задан Erwin Brandstetter 22 March 2019 в 03:00
поделиться

2 ответа

В Postgres вы можете использовать LEFT JOIN в выражении UPDATE со следующим синтаксисом:

UPDATE a 
SET a.is_active = CASE WHEN b.id IS NULL THEN FALSE ELSE TRUE
FROM TABLE_A a
LEFT JOIN TABLE_B b ON a.id = b.id
0
ответ дан GMB 22 March 2019 в 03:00
поделиться

Ну, вы можете использовать выражение CASE:

UPDATE TABLE_A a
    SET a.is_active = (CASE WHEN a.id IN (SELECT id FROM TABLE_B)
                            THEN FALSE ELSE TRUE
                       END); 

В Postgres вы упростите это до:

UPDATE TABLE_A
    SET is_active = (id IN (SELECT b.id FROM TABLE_B b));
0
ответ дан Gordon Linoff 22 March 2019 в 03:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: