Я довольно новичок в DB2 (и в целом в SQL), и у меня возникают проблемы с поиском эффективного метода для столбцов DECODE
В настоящее время в базе данных имеется ряд таблиц, большинство из которых имеют значительное количество столбцов в виде чисел, эти числа соответствуют таблице с действительными значениями. Мы говорим о 9500 различных значениях (например, «502 = да» или «1413 = аспирант»)
В любой ситуации я бы просто сделал предложение WHERE и показал бы, где они равны, но, поскольку для каждой таблицы нужно декодировать 20-30 столбцов, я не могу этого сделать (что я знаю).
Есть ли способ эффективно отобразить соответствующее значение из другой таблицы?
Пример:
SELECT TEST_ID, DECODE(TEST_STATUS, 5111, 'Approved, 5112, 'In Progress') TEST_STATUS
FROM TEST_TABLE
Вышеописанное работает нормально ....... но я вручную просматриваю числа и проверяю их, чтобы составить утверждения. Как я уже упоминал, в некоторых таблицах есть 20-30 столбцов, для которых это необходимо, а в некоторых - операторы DECODE, которые будут состоять из 12-15 условий.
Есть ли что-нибудь, что позволило бы мне сделать что-то попроще, например:
SELECT TEST_ID, DECODE(TEST_STATUS = *TableWithCodeValues*) TEST_STATUS
FROM TEST_TABLE
РЕДАКТИРОВАТЬ: Кроме того, чтобы быть более ясным, я знаю, что могу сделать тонну ВНУТРЕННИХ СОЕДИНЕНИЙ, но я не был уверен, был ли более эффективный способ, чем это.