如果Column1不为null,则按Column1排序,否则按Column2排序

125*_*748 13 sql postgresql sql-order-by

有没有办法在sql中组合ORDER BY,IS NULL以便我可以按列排序,如果列不为null,但如果它为null,则按另一列排序?

Sal*_*n A 30

就像是:

ORDER BY CASE 
    WHEN Column1 IS NOT NULL THEN Column1
    ELSE Column2
END
Run Code Online (Sandbox Code Playgroud)

与写作相同:

ORDER BY COALESCE(Column1, Column2)
Run Code Online (Sandbox Code Playgroud)

  • 这个“ORDER BY CASE WHEN Column1 IS NULL THEN Column2 ELSE Column1 END”对我来说似乎更清楚一些。我_必须_使用`END`语句吗? (2认同)

vea*_*top 11

试试这个

  ORDER BY COALESCE(fieldA, fieldB);
Run Code Online (Sandbox Code Playgroud)