Amazon Redshift按特定值排序

时间:2017-12-08 23:20:57

标签: amazon-redshift

我是Redshift的新手,正在寻找一种方法来指定我想要结果的顺序,accepted answer here正是我想要的,但是在Redshift中不存在FIELD函数。有没有办法在Redshift中完成相同的结果?

当前查询如下所示:

SELECT DISTINCT audit_type, audit_category FROM "schema"."table"

ORDER BY audit_type,    
CASE WHEN audit_category = 'string_1' THEN 1 
  WHEN audit_category = 'string_2' THEN 2 
  WHEN audit_category = 'string_3' THEN 3 
  WHEN audit_category = 'string_4' THEN 4 
  WHEN audit_category = 'string_5' THEN 5 
  WHEN audit_category = 'string_6' THEN 6 
  WHEN audit_category = 'string_7' THEN 7 
ELSE 8 END

1 个答案:

答案 0 :(得分:0)

您可以使用CASE语句来实现相同目的:

ORDER BY CASE WHEN "name"='core' THEN 1 ELSE 2 END, priority

您可以通过在core之前添加新的WHEN / THEN部分,使用ELSE之外的其他选项扩展列表,因此您最终要做的是映射可能的name列表用于排序行的整数的选项