我在这里遇到了一个建议(SQL: ORDER BY using a substring within a specific column... possible?),它显示了一个CASE语句,它在一个包含4列的表中返回ORDER子句中的整数。
SELECT npID, title, URL, issue
FROM tbl
ORDER BY substring(issue, 1, 4) DESC
,CASE
WHEN substring(issue, 6, 100) IN ('Winter','First_Quarter') THEN 1
WHEN substring(issue, 6, 100) IN ('Summer','Second_Quarter') THEN 2
WHEN substring(issue, 6, 100) IN ('Spring','Third_Quarter') THEN 3
WHEN substring(issue, 6, 100) IN ('Fall', 'Fourth Quarter') THEN 4
ELSE 5
END;我不明白这是如何运作的。显然,从大小写中得到的整数不是列序数(例如,其他5,因为表只有4列)。但是他们的意思是什么呢?(然而,文章中给出的例子很管用,所以我真的很困惑。)有人能解释一下在ORDER子句中在CASE语句中返回整数意味着什么吗?谢谢。
发布于 2017-01-31 18:00:58
在ORDER子句中的CASE语句是否返回列序号?
不是的。
下面的语句更改仅在该列中显示值的顺序。
CASE
WHEN substring(issue, 6, 100) IN ('Winter','First_Quarter') THEN 1
WHEN substring(issue, 6, 100) IN ('Summer','Second_Quarter') THEN 2
WHEN substring(issue, 6, 100) IN ('Spring','Third_Quarter') THEN 3
WHEN substring(issue, 6, 100) IN ('Fall', 'Fourth Quarter') THEN 4
ELSE 5
END;*emphasized text*https://stackoverflow.com/questions/41964316
复制相似问题