2017-06-27 69 views
0

是否有一种方法仅在单个列的select case语句中进行排序?让我们只能说在城市上升的顺序。在select - case语句中排序

SELECT 
StudentLocation = 
CASE 
    WHEN @IsRegistered IS NOT NULL AND @IsInClass IS NOT NULL THEN s.InClassLocation 
    WHEN @IsRegistered IS NOT NULL AND @IsInClass IS NULL THEN s.OnlineLocation 
    ELSE s.City + ', ' + s.State 
END 
+0

你有也是FROM,WHERE? – EvgenyKolyakov

+0

可能我不明白目的。但是,为什么你不去做这样的SELECT * FROM(SELECT StudentLocation = CASE WHEN IsRegistered IS NOT NULL,当IsRegistered IS NOT NULL和IsInClass为null,则s.OnlineLocation ELSE小号IsInClass IS NOT NULL THEN s.InClassLocation 。 City +','+ s.State END)order by – Dasma

回答

0

你忽略了你的问题的表和/ where子句,但假设s是一个别名你查询的表,你可以使用顺序相同的方式,你总是做到这一点:

SELECT 
StudentLocation = 
CASE 
    WHEN @IsRegistered IS NOT NULL AND @IsInClass IS NOT NULL THEN s.InClassLocation 
    WHEN @IsRegistered IS NOT NULL AND @IsInClass IS NULL THEN s.OnlineLocation 
    ELSE s.City + ', ' + s.State 
END 
FROM someTable as s 
ORDER BY s.City ASC; 

更正市