How do I convert an integer to string as part of a PostgreSQL query?

How do I convert an integer to string as part of a PostgreSQL query?

So, for example, I need:

SELECT * FROM table WHERE <some integer> = 'string of numbers' 

where <some integer> can be anywhere from 1 to 15 digits long.

1

4 Answers

Because the number can be up to 15 digits, you'll need to cast to an 64 bit (8-byte) integer. Try this:

SELECT * FROM table WHERE myint = mytext::int8 

The :: cast operator is historical but convenient. Postgres also conforms to the SQL standard syntax

myint = cast ( mytext as int8) 

If you have literal text you want to compare with an int, cast the int to text:

SELECT * FROM table WHERE myint::varchar(255) = mytext 
4

You can cast an integer to a string in this way

intval::text 

and so in your case

SELECT * FROM table WHERE <some integer>::text = 'string of numbers' 
1

You could do this:

SELECT * FROM table WHERE cast(YOUR_INTEGER_VALUE as varchar) = 'string of numbers' 

And if some integer which could be stored as string contains decimal points and you would want to compare decimal to decimal, below would help

select NULLIF('105.0', '')::decimal SELECT * FROM table WHERE NULLIF('105.0', '')::decimal = 105.0 

Below won't convert

select NULLIF('105.0', '')::int select NULLIF('105.0', '')::integer 

For this question you will just go by

select 105.3::text 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like