Product: Microsoft SQL Server Express Edition
Version: 9.00.1399.06
Server Collation: SQL_Latin1_General_CP1_CI_AS
for example,
create table test_sort
( description varchar(75) );
insert into test_sort values('Non-A');
insert into test_sort values('Non-O');
insert into test_sort values('Noni');
insert into test_sort values('Nons');
then execute the following selects:
select
*
from
test_sort
order by
cast( 1 as nvarchar(75));
select
*
from
test_sort
order by
cast( description as nvarchar(75));
Resultset1
-
Non-A
Non-O
Noni
Nons
Resultset2
-
Non-A
Noni
Non-O
Nons
Any ideas?As far as i figured your query out, i am just wondering why this works for you as the 1 will be casted to a constant string which should not be allowed in the order by clause. Are you sure this works for you ?
Jens K. Suessmeyer.
http://www.sqlserver2005.de|||First, you are running the release version of 2005. You should install at least SP1.
Second, if you install SP1, you would see an error:
Msg 408, Level 16, State 1, Line 9
A constant expression was encountered in the ORDER BY list, position 1.
Because you are sorting by the NUMBER 1, not column 1 by using the cast. So basically you have no sort.
No comments:
Post a Comment