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

时间:2012-12-10 21:27:19

标签: postgresql postgresql-9.1

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

所以,例如,我需要:

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

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

4 个答案:

答案 0 :(得分:94)

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

intval::text

等等你的情况

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

答案 1 :(得分:78)

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

SELECT * FROM table
WHERE myint = mytext::int8

::强制转换运算符是历史但方便的。 Postgres也符合SQL标准语法

myint = cast ( mytext as int8)

答案 2 :(得分:3)

您可以这样做:

SELECT * FROM table WHERE cast(YOUR_INTEGER_VALUE as varchar)='数字字符串'

答案 3 :(得分:0)

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

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