Posted by Ed Murphy on 04/04/07 15:52
rmturner76@gmail.com wrote:
> I have a need to perform pagination while using dynamic sorting. As
> an exmaple -
>
> SELECT TOP(10) * FROM (
> SELECT
> TextColumn,
> DecimalColumn,
> ROW_NUMER() OVER (
> ORDER BY
> CASE @x
> WHEN 1 THEN TextColumn
> WHEN 2 THEN DecimalColumn
> END
> DESC
> ) AS SortOrder
> FROM Table1
> ) AS Results WHERE SortOrder > ( 10 ) ORDER BY SortOrder
>
> This is obviously just some sample but an error is given because the
> data type of the 2 columns used in the order by are different. It
> works if I cast DecimalColumn to match the textcolumn but then the
> sorting is wrong. Is there a way to do this in a single query with 2
> different data types?
Try this:
WHEN 2 THEN
right(' '+cast(DecimalColumn as varchar(20)), 20)
[Back to original message]
|