У меня есть таблица в Postgres, с колонкой с Int (8) значений:Postgres - Выбор строки, начинающиеся со значением
Таблица ТАБЛИЦА:
number | name
----------------------
1111 | a
1122 | b
1133 | c
1144 | d
1155 | e
2211 | f
2222 | g
2233 | h
2244 | i
2255 | k
Я хочу выбрать все те строки, «число» начинается с «11»:
number | name
----------------------
1111 | a
1122 | b
1133 | c
1144 | d
1155 | e
Когда обе колонки (номер и название) относятся к типу VARCHAR, можно сравнивать значения с помощью оператора%, как:
select *
from TABLE
where number = '11%'
Но он не работает на int. Как я могу это сделать?
Спасибо!
вы, вероятно, хотели использовать 'like' вместо' = '(хотя я согласен с @a_horse_with_no_name, используйте' varchar (2) 'и' = '11'') – paul
@paul: 'varchar (2)' не будет потому что существующие значения не вписываются в это. Но я больше ссылался на «магическое» значение 255. Нет оптимизаций для «varchar» с длиной 255 по сравнению с 257, 314 или 42 (в современной СУБД). Особенно в Postgres длина не требуется вообще, поэтому «литье (число как varchar)» или даже «cast (number as text)» будет иметь гораздо больше смысла. –
@a_horse_with_no_name. , , Это просто размер по умолчанию, который я использую для вещей, которые должны быть довольно короткими. –