Writing a stored procedure in MS SQL Server 2008 R2, I want to avoid using DSQL...
I would like the sort method (ASC or DESC) to be conditional.
Now, with a
This is one of those cases when specific solutions may be preferable preferable to generic ones, especially when we deal with large amounts of data. I would:
IF @OrderAscOrDesc = 0 THEN BEGIN
SELECT ...
FROM ...
ORDER BY [AlphaColumn] ASC
END ELSE BEGIN
SELECT ...
FROM ...
ORDER BY [AlphaColumn] DESC
END
If you have an index on [AlphaColumn], you might sometimes get a better plan with a more specific query, than with a generic one-size-fits-all one.
Edit: to facilitate code reuse, you can wrap your select in an inline UDF - it will perform just as well:
IF @OrderAscOrDesc = 0 THEN BEGIN
SELECT ...
FROM YourInlineUdf(...)
ORDER BY [AlphaColumn] ASC
END ELSE BEGIN
SELECT ...
FROM YourInlineUdf(...)
ORDER BY [AlphaColumn] DESC
END