使用SQL Order BY对给定元素进行排序
鉴于: 我需要对它们进行排序,以便ID=111的所有项目在返回的数据集中排在最后 例如,它可能会返回:使用SQL Order BY对给定元素进行排序,sql,relational-database,sql-order-by,Sql,Relational Database,Sql Order By,鉴于: 我需要对它们进行排序,以便ID=111的所有项目在返回的数据集中排在最后 例如,它可能会返回: SELECT projectID, urlID, COUNT(1) AS totalClicks, projectPage, (SELECT COUNT(1) FROM tblStatSessionRoutes, tblStatSessions WHERE tblStatSessionRoutes.statSessionI
SELECT projectID, urlID, COUNT(1) AS totalClicks, projectPage,
(SELECT COUNT(1)
FROM tblStatSessionRoutes, tblStatSessions
WHERE tblStatSessionRoutes.statSessionID = tblStatSessions.ID
AND tblStatSessions.projectID = tblAdClicks.projectID
AND (tblStatSessionRoutes.leftPageID = tblAdClicks.projectPage OR
tblStatSessionRoutes.rightPageID = tblAdClicks.projectPage)) AS totalViews
FROM tblAdClicks
WHERE projectID IN (SELECT projectID FROM tblProjects WHERE userID = 5)
GROUP BY projectID, urlID, projectPage
但是我需要所有的111都显示在列表的末尾,而不需要使用两个查询,一个选择111,另一个选择其余的。不幸的是,这不够好,因为这是一个资源密集型查询。添加
Project ID
---------
100
100
100
156
156
143
122
111
111
111
190
154
87
加
你到底想在什么基础上看到111。它总是硬编码到111,还是有一些条件来推导这个数据,这些数据应该在最后出现?我只是用它作为一个例子,值将被替换为我代码中的一个变量。嗯,我告诉你!您使用的是非版税免费图像。。。嗯!!!你到底想在什么基础上看到111。它总是硬编码到111,还是有一些条件来推导这个数据,这些数据应该在最后出现?我只是用它作为一个例子,值将被替换为我代码中的一个变量。嗯,我告诉你!您使用的是非版税免费图像。。。嗯!!!非常感谢!但对于列表的末尾,另外1个0才是有效的:)我发现。。。最终;)或者你可以说“然后0其他1结束描述”,但这并不清楚,谢谢!但对于列表的末尾,另外1个0才是有效的:)我发现。。。最终;)或者你可以说“然后0,否则1结束描述”,但这并不清楚。
ORDER BY
CASE projectID WHEN 111 THEN 1 ELSE 0 END,
projectID /* etc... */
order by cast (projectID as integer)