Использование Convert для запроса ELSE CASE SQL

Я выполняю SQL-запрос в Postgres, который выбирает числовое поле. Мне нужно отобразить строковое значение в результате этого SELECT, поэтому я использую CASE утверждение как это:

Select 
case numeric_field
when 100 then 'some string'
when 200 then 'some other string'

Проблема в том, что если числовое поле имеет любое другое значение (например, 300 например), мне нужно отобразить это значение (как строку, конечно). Я стараюсь CONVERT на остальном, как это

...
else CONVERT(varchar(10),numeric_field)

Но это не сработало. Как мне это сделать?

1 ответ

Решение
SELECT CASE numeric_field
          WHEN 100 THEN 'some string'
          WHEN 200 THEN 'some other string'
          ELSE numeric_field::text
       END AS result
  • Ваше заявление было неполным, END скучал. Прочтите руководство здесь.
  • Чтобы вывести числовое поле в виде текста, просто приведите его к тексту: numeric_field::text, которая является специфичной для Postgres краткой формой стандартного вызова SQL:

    cast (numeric_field AS text)
    
Другие вопросы по тегам