Как преобразовать целое число в строку как часть запроса 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) = 'строка чисел'