Sql Dynamic Order By Using Alias
Using SQL Server, I can order a normal SELECT query using an alias: SELECT u.FirstName + ' ' + u.LastName as PhysicianName, COUNT(r.Id) as ReferralsCount FROM Referra
Solution 1:
Column aliases defined in the SELECT can only be used in the ORDER BY on their own. Not in an expression.
You can adjust your original attempt as follows.
;WITHTAS (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)
SELECT *
FROMTORDERBYCASEWHEN@orderby = 'PhysicianName' THEN PhysicianName
END,
CASE
WHEN@orderby = 'ReferralsCount' THEN ReferralsCount
END
Post a Comment for "Sql Dynamic Order By Using Alias"