| How to architect dynamic ORDER BY? |
|
Execute the following
script in Query Editor to sort the data set four ways based on three and default criteria:
USE AdventureWorks
GO
SELECT
ContactID,
FirstName,
LastName,
Title=isnull(Title,'')
FROM
Person.Contact
WHERE LEFT(FirstName,1)='M'
ORDER BY
CASE
WHEN LEFT(LastName,1)='A' THEN RANK() OVER (ORDER BY FirstName+LastName)
WHEN LEFT(LastName,1)='M' THEN RANK() OVER (ORDER BY LastName+', '+ FirstName, Title)
WHEN LEFT(LastName,1)='U' THEN RANK() OVER (ORDER BY LastName+', '+ FirstName DESC)
ELSE RANK() OVER (ORDER BY LastName DESC, FirstName DESC)
END
GO
|
| SQLUSA - The Best SQL Training in the World |
|