我有一个 ORDER BY 子句,它对一组分组值的结果集进行排序。
我希望 ORDER By 做的是导致 No KS2 行位于顶部。
这些值是从三个不同的列有条件地填充的,但这些值来自所有三个列的同一组。
值为空,长度为零的字符串,1c, 1b, 1a, 2c, 2b, 2a, 3c.... 5a, 6c, 6b, 6a
目前,我的 ORDER BY 子句通过基于值左侧和值 DESC 右侧的排序来显示值。
示例结果集将是:
2a
3c
3b
4c
4b
4a
5c
5b
No KS2
这是我想要的一个例子:
No KS2
2a
3c
3b
4c
4b
4a
5c
5b
我目前拥有的代码在这里:
ORDER BY
LEFT(
CASE Name
WHEN 'English' THEN
CASE WHEN [Ks2en]=NULL OR [Ks2en]='' THEN
'No KS2'
ELSE
[Ks2en]
END
WHEN 'Mathematics' THEN
CASE WHEN [Ks2ma]=NULL OR [Ks2ma]='' THEN
'No KS2'
ELSE
[Ks2ma]
END
ELSE
CASE WHEN [Ks2av]=NULL OR [Ks2av]='' THEN
'No KS2'
ELSE
[Ks2av]
END
END,1),
RIGHT(
CASE Name
WHEN 'English' THEN
CASE WHEN [Ks2en]=NULL OR [Ks2en]='' THEN
'No KS2'
ELSE
[Ks2en]
END
WHEN 'Mathematics' THEN
CASE WHEN [Ks2ma]=NULL OR [Ks2ma]='' THEN
'No KS2'
ELSE
[Ks2ma]
END
ELSE
CASE WHEN [Ks2av]=NULL OR [Ks2av]='' THEN
'No KS2'
ELSE
[Ks2av]
END
END,1) DESC