我在postgres中有一个表,其中一列有int(8)值:
表格表:
number | name
----------------------
1111 | a
1122 | b
1133 | c
1144 | d
1155 | e
2211 | f
2222 | g
2233 | h
2244 | i
2255 | k
我想选择所有那些' number'从" 11"开始:
number | name
----------------------
1111 | a
1122 | b
1133 | c
1144 | d
1155 | e
当两列(数字和名称)都是varchar类型时,我可以使用%运算符比较值,如:
select *
from TABLE
where number = '11%'
但它不适用于int。 我该怎么办?
谢谢!
答案 0 :(得分:1)
SELECT *
FROM table
WHERE number::text LIKE '11%'
答案 1 :(得分:1)
该列是一个数字(int),因此您应该将其视为一个。
select *
from TABLE
where number >= 1100 and number <= 1199
答案 2 :(得分:0)
答案 3 :(得分:0)
我会通过显式转换完成此操作:
select *
from TABLE
where cast(number as varchar(255)) like '11%';
编写执行隐式转换的SQL代码时要非常小心。