小编ghr*_*ghr的帖子

对别名字段的Postgres整理

我有下表:

CREATE TABLE public_bodies
  ("id" int, "name" varchar(46))
;

INSERT INTO public_bodies
  ("id", "name")
VALUES
  (1, 'Ytre Helgeland District Psychiatric Centre'),
  (2, 'Åfjord Municipality'),
  (3, 'Østfold Hospital')
;
Run Code Online (Sandbox Code Playgroud)

我想运行这个查询:

SELECT public_bodies.id, public_bodies.name AS display_name
FROM public_bodies
ORDER BY display_name COLLATE "en_US";
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

ERROR:  column "display_name" does not exist
LINE 3: ORDER BY display_name COLLATE "en_US";
                 ^
Run Code Online (Sandbox Code Playgroud)

按表名排序可以正常工作:

SELECT public_bodies.id, public_bodies.name AS display_name
FROM public_bodies
ORDER BY public_bodies.name COLLATE "en_US";

--  id |        display_name
-- ----+--------------------------------------------
--   2 | Åfjord Municipality …
Run Code Online (Sandbox Code Playgroud)

postgresql collation internationalization

5
推荐指数
1
解决办法
155
查看次数