SQL动态ORDER BY使用别名
发布时间:2021-04-03 00:25:44 所属栏目:编程 来源:网络整理
导读:行使SQL Server,我可以行使别名来呼吁正常的SELECT查询: SELECT u.FirstName + ' ' + u.LastName as PhysicianName,COUNT(r.Id) as ReferralsCountFROM Referrals r INNER JOIN Users u ON r.PhysicianId = u.IdGROUP BY r.PhysicianId,u.FirstName,u.LastNa
行使SQL Server,我可以行使别名来呼吁正常的SELECT查询: SELECT u.FirstName + ' ' + u.LastName as PhysicianName,COUNT(r.Id) as ReferralsCount FROM Referrals r INNER JOIN Users u ON r.PhysicianId = u.Id GROUP BY r.PhysicianId,u.FirstName,u.LastName ORDER BY PhysicianName 可是,实行行使动态ORDER BY执行沟通的操纵: SELECT u.FirstName + ' ' + u.LastName as PhysicianName,COUNT(r.Id) as ReferralsCount FROM Referrals r INNER JOIN Users u ON r.PhysicianId = u.Id GROUP BY r.PhysicianId,u.LastName ORDER BY CASE WHEN @orderby = 'PhysicianName' THEN PhysicianName END,CASE WHEN @orderby = 'ReferralsCount' THEN ReferralsCount END 发生以下错误:
办理要领SELECT中界说的列别名只能在ORDER BY中单独行使.不在表达中.您可以按如下方法调解原始实行. ;WITH T AS (SELECT u.FirstName + ' ' + u.LastName AS PhysicianName,COUNT(r.Id) AS ReferralsCount FROM Referrals r INNER JOIN Users u ON r.PhysicianId = u.Id GROUP BY r.PhysicianId,u.LastName) SELECT * FROM T ORDER BY CASE WHEN @orderby = 'PhysicianName' THEN PhysicianName END,CASE WHEN @orderby = 'ReferralsCount' THEN ReferralsCount END (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读