我正在尝试使用IntelliJ的SQL格式化程序(Ultimate 2019.1)来使用CASE
语句来格式化检查约束,如下所示:
(postgres语法)
ALTER TABLE "foo"
ADD CONSTRAINT "bar" CHECK (
CASE
WHEN ("col_a" = 'VAL_A1') THEN ("col_b" IN ('A', 'B', 'C'))
WHEN ("col_a" = 'VAL_A2') THEN ("col_b" IN ('D', 'E', 'F'))
ELSE FALSE
END
);
或:
ALTER TABLE "foo"
ADD CONSTRAINT "bar" CHECK ( CASE
WHEN ("col_a" = 'VAL_A1') THEN ("col_b" IN ('A', 'B', 'C'))
WHEN ("col_a" = 'VAL_A2') THEN ("col_b" IN ('D', 'E', 'F'))
ELSE FALSE
END);
到目前为止,我得到的最好的是:
ALTER TABLE "foo"
ADD CONSTRAINT "bar" CHECK ( CASE
WHEN ("col_a" = 'VAL_A1') THEN ("col_b" IN ('A', 'B', 'C'))
WHEN ("col_a" = 'VAL_A2') THEN ("col_b" IN ('D', 'E', 'F'))
ELSE FALSE
END);
我已经经历了几个选项,但是找不到告诉格式化程序不要将WHEN
与CASE
关键字对齐的选项(或者将CASE
放在一个新的行)。
我发现的一个选择是根本不包装支票。但是,使用大的CASE
语句很快就变得难以理解
有什么我可以做的吗?
谢谢!