Есть ли способ поставить условие WHERE на ВСЕ столбцы без использования нескольких AND? - PullRequest
1 голос
/ 09 апреля 2019

Предположим, у меня есть таблица ученика с несколькими столбцами темы

Я хочу выбрать запись студентов, набравших более 70 баллов по ВСЕМ предметам.

Есть ли способ сделать это без использования «нескольких» И условий

Например, для использования нижеприведенного запроса необходимо указать одинаковое условие AND для каждого столбца

ВЫБРАТЬ * ОТ ШКОЛА ГДЕ Математика> 70 И Физика> 70 И Химия> 70 ... и так далее

Я ищу что-то вроде:

ГДЕ студент. *> 70

1 Ответ

4 голосов
/ 09 апреля 2019

По сути, вам нужно использовать несколько AND условий.Вы можете замаскировать это, используя LEAST():

where least(physics, maths, chemistry) > 70

Однако, ваша фундаментальная проблема - ваша модель данных.Вместо столбцов у вас должна быть таблица с одной строкой на каждого учащегося / предмет:

 Table:  StudentSubjects
 studentId    Subject    Grade

Тогда вам не нужно будет упоминать каждый предмет по отдельности.

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