Как исправить синтаксическую ошибку в функции SWITCH - PullRequest
1 голос
/ 05 июля 2019

Я пытаюсь заполнить столбец, помеченный type_match, в зависимости от содержимого двух столбцов 2018_status и 2019_status в таблице status_report.

Все три столбца являются кратким текстом.Я продолжаю получать «синтаксическую ошибку».

UPDATE status_report AS per  
SET per.type_match = 
Switch(
   per.2018_status = 'No application found', 'No application for 2018',
   per.2019_status = 'No application found', 'NA',
   per.2018_status = per.2019_status, 'Yes',
   True, 'No'
)

Документация кажется довольно простой и считаю, что это проблема MS Access, где они, как правило, очень требовательны.

Ответы [ 2 ]

1 голос
/ 05 июля 2019

В Switch нет ничего плохого, вам нужно только заключить в квадратные скобки имена столбцов, которые имеют цифры в начале:

UPDATE status_report AS per  
SET per.type_match = 
Switch(
   per.[2018_status] = 'No application found', 'No application for 2018',
   per.[2019_status] = 'No application found', 'NA',
   per.[2018_status] = per.[2019_status], 'Yes',
   True, 'No'
)
0 голосов
/ 05 июля 2019

Вы можете использовать 1=1 по умолчанию:

UPDATE status_report AS per  
    SET per.type_match = Switch(per.2018_status = "No application found", "No application for 2018,
                                per.2019_status = "No application found", "NA",
                                per.2018_status = per.2019_status, "Yes",
                                1=1, "No"
                         );

MS Access также традиционно использует двойные кавычки для строк, поэтому я также изменил их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...