如何将整数转换为字符串作为PostgreSQL查询的一部分?例如,我需要:
SELECT * FROM table WHERE <some integer> = 'string of numbers'
字符串其中<some integer>可以是从1到15的任何数字长度。
<some integer>
1
15
pkln4tw61#
因为这个数字最多可以是15位数,所以你需要转换成一个64位(8字节)的整数。试试这个:
SELECT * FROM table WHERE myint = mytext::int8
字符串::强制转换操作符是历史性的,但很方便。
::
myint = cast ( mytext as int8)
型如果你有文字文本要与int进行比较,请将int转换为文本:
int
SELECT * FROM table WHERE myint::varchar(255) = mytext
型
uqxowvwt2#
你可以用这种方法将一个整数转换成一个字符串
intval::text
字符串所以在你的情况下
SELECT * FROM table WHERE <some integer>::text = 'string of numbers'
b5lpy0ml3#
你可以这样做:
SELECT * FROM table WHERE cast(YOUR_INTEGER_VALUE as varchar) = 'string of numbers'
字符串
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
whitzsjs5#
您可以将INTEGER转换为VARCHAR(255),如下所示。* The doc详细说明:
INTEGER
VARCHAR(255)
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)
5条答案
按热度按时间pkln4tw61#
因为这个数字最多可以是15位数,所以你需要转换成一个64位(8字节)的整数。试试这个:
字符串
::
强制转换操作符是历史性的,但很方便。型
如果你有文字文本要与
int
进行比较,请将int
转换为文本:型
uqxowvwt2#
你可以用这种方法将一个整数转换成一个字符串
字符串
所以在你的情况下
型
b5lpy0ml3#
你可以这样做:
字符串
pbossiut4#
如果某个可以存储为字符串的整数包含小数点,并且您希望比较小数点与小数点,下面将有所帮助
字符串
下面不会转换
型
对于这个问题,你只需要通过
型
whitzsjs5#
您可以将
INTEGER
转换为VARCHAR(255)
,如下所示。* The doc详细说明:字符串
或者:
型
此外,您可以使用pg_typeof()检查值类型,如下所示:
型