Можно ли определить массив текстовых полей (или любой тип данных) и выбрать из него значение, все в пределах одного оператора? Например:
SELECT ARRAY['First', 'Second', 'Third'][mytable.state] as interpreted_state WHERE mytable.id = 1;
Вы можете сделать это с помощью оператора SQL "CASE", нет?
SELECT CASE mytable.state WHEN 0 THEN 'First' WHEN 1 THEN 'Second' WHEN 2 THEN 'Third' END FROM mytable WHERE mytable.id = 1
SELECT * FROM mytable.id WHERE columns IN ("1","2","3");
если я правильно понял, что вы имели в виду ..
Ты рядом, тебе просто нужно несколько паренов.
SELECT (array['one','two','three'])[state] FROM mytable WHERE id = 1;
Но, как уже говорилось, оператор CASE является стандартным и переносимым методом.
Это действительно глупый способ сделать это. Иметь таблицу поиска и использовать соединение.