173

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

因此,例如,我需要:

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

where<some integer>的长度可以是 1 到 15 位。

4

4 回答 4

190

由于该数字最多为 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
于 2012-12-10T21:32:32.423 回答
160

您可以通过这种方式将整数转换为字符串

intval::text

所以在你的情况下

SELECT * FROM table WHERE <some integer>::text = 'string of numbers'
于 2016-02-10T10:53:36.077 回答
25

你可以这样做:

SELECT * FROM table WHERE cast(YOUR_INTEGER_VALUE as varchar) = 'string of numbers'
于 2018-08-09T14:35:56.917 回答
2

如果某个可以存储为字符串的整数包含小数点,并且您想要将小数与小数进行比较,那么下面会有所帮助

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 
于 2021-04-14T06:50:01.390 回答