在PostgreSQL中将整数转换为字符串

lvjbypge  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(5)|浏览(224)

如何将整数转换为字符串作为PostgreSQL查询的一部分?
例如,我需要:

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

字符串
其中<some integer>可以是从115的任何数字长度。

pkln4tw6

pkln4tw61#

因为这个数字最多可以是15位数,所以你需要转换成一个64位(8字节)的整数。试试这个:

SELECT * FROM table
WHERE myint = mytext::int8

字符串
::强制转换操作符是历史性的,但很方便。

myint = cast ( mytext as int8)


如果你有文字文本要与int进行比较,请将int转换为文本:

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

uqxowvwt

uqxowvwt2#

你可以用这种方法将一个整数转换成一个字符串

intval::text

字符串
所以在你的情况下

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

b5lpy0ml

b5lpy0ml3#

你可以这样做:

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

字符串

pbossiut

pbossiut4#

如果某个可以存储为字符串的整数包含小数点,并且您希望比较小数点与小数点,下面将有所帮助

select NULLIF('105.0', '')::decimal

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

字符串
下面不会转换

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

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


对于这个问题,你只需要通过

select 105.3::text

whitzsjs

whitzsjs5#

您可以将INTEGER转换为VARCHAR(255),如下所示。* The doc详细说明:

postgres=# SELECT 27::VARCHAR(255);
 varchar
---------
 27
(1 row)

字符串
或者:

postgres=# SELECT CAST(27 AS VARCHAR);
 varchar
---------
 27
(1 row)


此外,您可以使用pg_typeof()检查值类型,如下所示:

postgres=# SELECT pg_typeof(27);
 pg_typeof
-----------
 integer
(1 row)

相关问题