>no l order by è quello che vorrei ottenere dal result set, la
>row number semplicemente mi assegna un valore numerico crescente
ok, allora manca
se vuoi mettere le stringhe vuote in fondo fai come nel seguente esempio:
USE tempdb;
GO
CREATE TABLE #Foo
(
IDFoo int NOT NULL PRIMARY KEY CLUSTERED
, FooData char(1) NOT NULL
)
GO
INSERT INTO #Foo (IDFoo, FooData)
VALUES (1, '' );
INSERT INTO #Foo (IDFoo, FooData)
VALUES (2, '' );
INSERT INTO #Foo (IDFoo, FooData)
VALUES (3, 'D' );
INSERT INTO #Foo (IDFoo, FooData)
VALUES (4, 'A' );
INSERT INTO #Foo (IDFoo, FooData)
VALUES (5, 'C' );
GO
-- order by normale
SELECT
IDFoo
, FooData
FROM
#Foo
ORDER BY
FooData
GO
-- order by case
SELECT
IDFoo
, FooData
FROM
#Foo
ORDER BY
CASE
WHEN LTRIM(RTRIM(FooData)) = ''
THEN 'Z' -- max value (per farlo finire in fondo)
ELSE FooData
END
GO
DROP TABLE #Foo;
GO
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi