Я хотел бы написать запрос в MYSQL, который имеет следующий вид:Как я могу повторять инструкции CASE в SQL?
SELECT *,
CASE
WHEN <column name> = 1 THEN 1
ELSE 0
END as "column_1",
CASE
WHEN <column name> = 2 THEN 1
ELSE 0
END as "column_2",
CASE
WHEN <column name> = 3 THEN 1
ELSE 0
END as "column_3"
FROM <table name>;
Я хотел бы записать этот запрос в большом количестве случаев (около 1000 случаев), таким образом, что 1000 новых столбцов которые удовлетворяют указанным выше условиям. Как я могу повторить этот процесс в mySQL, так что мне не нужно писать каждую строку вручную, как я сделал выше (где всего 3 случая)?
Вы выполняете свои итерации в хранимой процедуре или внешней скриптовой программе, чтобы динамически писать SQL для вас. После написания, вы выполняете динамически созданный оператор sql. – JNevill
Создайте текст выше, используя любой язык сценариев, MySql сделает. – Serg
Немного не по теме: Булевы выражения неявно оцениваются до 0 или 1, что означает 'WHEN = 1 ТОГДА 1 ELSE 0 END' можно свести к простому' = 1'. Кроме того, имена полей обычно окружены обратными окнами, а не двойными кавычками. –
shmosel