在创建UNIQUE INDEX时如何使用CASE语句?
我的陈述如下
CREATE UNIQUE INDEX my_unique_creation
ON junk ((CASE
WHEN nlevel(path) > 1 THEN (subpath(path, 0, -1), name)
ELSE (path, name) END))
WHERE my_col IS NULL;
这在以下行中失败:
pq: column "" has pseudo-type record
答案 0 :(得分:1)
CASE
应该只返回单列,而不是元组(“记录”)。
CREATE UNIQUE INDEX my_unique_creation
ON junk ((CASE
WHEN nlevel(path) > 1 THEN subpath(path, 0, -1)
ELSE path
END), name)
WHERE my_col IS NULL;