我试图按导演的名字排序,但却无法进行排序。以下是我用来获取当前格式的代码。当我尝试按导演名称排序时,它似乎没有工作并将它们放在连续的行中。第一张桌子是我现在拥有的,第二张桌子是我想要的。我正在使用oracle sql。
SELECT DIRECTOR_NAME
,(CASE WHEN MemberCoordinatingCareUserName IS NULL THEN CCManagerFullName END) AS CCMANAGERNAME
,MemberCoordinatingCareUserName as MEMBERCCCARE
,SDCB_PEDS
,SDCB_ADULT_CCL3
,SDCB_ADULT_CCL2
,CCL_3
,CCL_2
,INF
,CCL_1
,TOTAL_ASSIGNMENT
,TEAM_MEMBER_COUNT
,TEAM_SUMMARY
,TEAM_CASELOAD_PERCENTAGE
,CASELOAD_PERCENTAGE
,SDCB_PEDS_CASELOAD
,SDCB_ADULT_CCL3_CASELOAD
,SDCB_ADULT_CCL2_CASELOAD
,CCL_3_CASELOAD
,CCL_2_CASELOAD
,INF_CASELOAD
,CCL_1_CASELOAD
FROM (
(
SELECT
DISTINCT DIRECTOR_NAME
,CCManagerFullName
,NULL AS MemberCoordinatingCareUserName
,NULL AS SDCB_PEDS
,NULL AS SDCB_ADULT_CCL3
,NULL AS SDCB_ADULT_CCL2
,NULL AS CCL_3
,NULL AS CCL_2
,NULL AS INF
,NULL AS CCL_1
,NULL AS TOTAL_ASSIGNMENT
,TEAM_MEMBER_COUNT
,TEAM_SUMMARY
,TEAM_CASELOAD_PERCENTAGE
,NULL AS CASELOAD_PERCENTAGE
,NULL AS SDCB_PEDS_CASELOAD
,NULL AS SDCB_ADULT_CCL3_CASELOAD
,NULL AS SDCB_ADULT_CCL2_CASELOAD
,NULL AS CCL_3_CASELOAD
,NULL AS CCL_2_CASELOAD
,NULL AS INF_CASELOAD
,NULL AS CCL_1_CASELOAD
FROM ALL_DATA
)
UNION ALL
(
SELECT NULL AS DIRECTOR_NAME
,CCManagerFullName
,MemberCoordinatingCareUserName
,SDCB_PEDS
,SDCB_ADULT_CCL3
,SDCB_ADULT_CCL2
,CCL_3
,CCL_2
,INF
,CCL_1
,TOTAL_ASSIGNMENT
,NULL AS TEAM_MEMBER_COUNT
,NULL AS TEAM_SUMMARY
,NULL AS TEAM_CASELOAD_PERCENTAGE
,CASELOAD_PERCENTAGE
,SDCB_PEDS_CASELOAD
,SDCB_ADULT_CCL3_CASELOAD
,SDCB_ADULT_CCL2_CASELOAD
,CCL_3_CASELOAD
,CCL_2_CASELOAD
,INF_CASELOAD
,CCL_1_CASELOAD
FROM ALL_DATA
)
)ME
ORDER BY CCManagerFullName,(CASE WHEN MemberCoordinatingCareUserName IS NULL THEN 1 ELSE 2 END),MemberCoordinatingCareUserName
答案 0 :(得分:0)
我认为你希望导演处于领先地位。你想要的输出对我来说没有意义,让托德,格雷格,戴夫倒序,而弗兰克和丽莎则按字母顺序排列。
ORDER BY
DIRECTORNAME,
CCManagerFullName,
CASE WHEN MemberCoordinatingCareUserName IS NULL THEN 1 ELSE 2 END,
MemberCoordinatingCareUserName
由于nulls无论如何都应排序低,你可能会发现case
表达式的排序是多余的。