我有一个需要排序的多态表,但用于排序的列取决于表的type
字段。像这样:
ORDER BY CASE WHEN type=FOO THEN (table.last_name, table.first_name) ELSE table.name END
然而,这不起作用,任何人都可以指出我正确的方向,我想说(在伪代码中)
IF type is FOO sort by last_name, first_name ASC OTHERWISE sort by name ASC
答案 0 :(得分:1)
您可能需要每个列的案例
!path
答案 1 :(得分:1)
您需要使用两个字段指定它:
ORDER BY CASE WHEN type=FOO THEN (table.last_name) ELSE table.name END,
CASE WHEN type=FOO THEN (table.first_name) ELSE null END