Postgres - 选择以value开头的行

时间:2014-11-14 11:52:31

标签: sql postgresql

我在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。 我该怎么办?

谢谢!

4 个答案:

答案 0 :(得分:1)

SELECT *
FROM table
WHERE number::text LIKE '11%'

答案 1 :(得分:1)

该列是一个数字(int),因此您应该将其视为一个。

select *
from TABLE
where number >= 1100 and number <= 1199

答案 2 :(得分:0)

您需要将整数转换为字符串,然后使用like:

select * 
from "table" 
where number::text like '11%'

同时检查here

答案 3 :(得分:0)

我会通过显式转换完成此操作:

select *
from TABLE
where cast(number as varchar(255)) like '11%';

编写执行隐式转换的SQL代码时要非常小心。