Я сталкиваюсь с проблемой в выполнении запросов с Оператором выбора. На основе моего условия, (для, например, длина), я хочу выполнить другой SQL-оператор.
Проблематичный демонстрационный запрос следующие:
select case
when char_length('19480821') = 8
then select count(1) from Patient
when char_length('19480821')=10
then select count(1) from Doctor
end
Исключение:
[Ошибка] строки Сценария: 1-5--------------------------
Неправильный синтаксис около ключевого слова 'выбор'.
Сообщение: 156, уровень: 15, состояние: 2
Сервер: sunsrv4z7, Строка: 2
Я не могу исправить синтаксис. Я получаю строку для char_length, как введено от пользователя. Как я могу запустить запросы на основе определенного условия? Действительно ли СЛУЧАЙ является правильным выбором? Или сделайте я должен использовать любую другую вещь.
Просто поместите открывающую и закрывающую скобки вокруг оператора select, чтобы решить вашу проблему
select
case when
char_length('19480821')=8 then
(select count(1) from Patient )
when
char_length('19480821')=10 then
(select count(1) from Doctor )
end
select
case when char_length('19480821')=8 then (select count(1) from Patient)
when char_length('19480821')=10 then (select count(1) from Doctor)
end
Проблема в том, что во вложенных операторах «Выбрать» отсутствуют открывающие и закрывающие скобки :)