Как преобразовать целое число в строку как часть запроса PostgreSQL?
Как преобразовать целое число в строку как часть запроса PostgreSQL?
Так, например, мне нужно:
SELECT * FROM table WHERE <some integer> = 'string of numbers'
где <some integer>
может быть длиной от 1 до 15 цифр.
Ответы
Ответ 1
Поскольку число может быть до 15 цифр, вам необходимо привести к 64-разрядному (8-байтовому) целому числу. Попробуй это:
SELECT * FROM table
WHERE myint = mytext::int8
Оператор ::
cast является историческим, но удобным. Postgres также соответствует стандартному синтаксису SQL
myint = cast ( mytext as int8)
Если у вас есть буквальный текст, который вы хотите сравнить с int
, приведите int
к тексту:
SELECT * FROM table
WHERE myint::varchar(255) = mytext
Ответ 2
Таким образом вы можете выделить целое число в строку
intval::text
и поэтому в вашем случае
SELECT * FROM table WHERE <some integer>::text = 'string of numbers'
Ответ 3
Вы могли бы сделать это:
SELECT * FROM table WHERE cast (YOUR_INTEGER_VALUE as varchar) = 'строка чисел'