У меня есть таблица Person с несколькими столбцами, обозначающая указанную этническую принадлежность человека (например, афро-американец, испаноязычный, азиатский, белый и т. Д.). Разрешены множественные выборы (например, белый и азиатский). Если выбрана определенная этническая принадлежность, значение столбца равно 1, если оно не выбрано, оно равно 0, и если человек полностью пропустил вопрос об этнической принадлежности, он равен NULL.Результат выбора сборки, основанный на значениях нескольких столбцов
Я хочу сформулировать запрос SELECT, который будет рассматривать несколько столбцов «Этничность» и вернуть одно текстовое значение, которое представляет собой конкатенацию строк на основе столбцов, значения которых равны 1. То есть, если столбец «Белый» равен 1 и столбцу Азиатский - 1, а остальные столбцы равны 0 или NULL, выход будет «Белый/Азиатский».
Один из подходов состоит в том, чтобы построить ряд операторов IF, которые охватывают все комбинации условий. Однако существует 8 возможных ответов на этническую принадлежность, поэтому вариант IF представляется очень громоздким.
Есть ли элегантное решение этой проблемы?
Было бы лучше, чтобы исправить нормализацию. Person '1-n' Ethnicity –
Не вариант ... –