我有以下postgressql表:
CREATE TABLE businesses
(
id serial NOT NULL,
town character varying(200) NOT NULL,
name character varying(200) NOT NULL,
employees character varying(200) NOT NULL,
offices character varying(200) NOT NULL,
CONSTRAINT businesses_pkey PRIMARY KEY (id)
)
我需要按员工人数排序。不幸的是,我意识到该表是字符类型,它似乎是一个字符串。有没有办法修改表而不破坏它,将employees字段变成可按数字排序的东西?
答案 0 :(得分:3)
听起来像一个简单的ALTER TABLE
:
ALTER TABLE businesses ALTER COLUMN employees TYPE integer USING (CAST(employees AS integer))
但您可能需要调整使用此表的应用程序。
你可以平均时间
ORDER BY CAST(employees AS integer)
但它会很慢,不会使用任何索引。
答案 1 :(得分:2)
使用此查询更改列的类型:
ALTER TABLE businesses ALTER employees TYPE numeric USING cast(employees as numeric);
您可以在此处找到详细信息:http://www.postgresql.org/docs/current/static/sql-altertable.html