>io dovrei visualizzare su griglia prima il campo Interno,poi
>i campi FaxLDAP , InternoLDAP
>e infine il resto dei campi.
Ciao Anna,
la prima cosa che ci devi dire è il DBMS con il quale stai lavorando.
Supponendo di lavorare con SQL Server e considerando l'esiguo numero di righe, potresti adottare la seguente soluzione:
USE tempdb;
CREATE TABLE dbo.TipoNumero(
Id int NOT NULL PRIMARY KEY,
descrizione varchar(15) NOT NULL
);
INSERT dbo.TipoNumero VALUES(1, 'Interno');
INSERT dbo.TipoNumero VALUES(2, 'domicilio');
INSERT dbo.TipoNumero VALUES(3, 'Cellulare');
INSERT dbo.TipoNumero VALUES(4, 'Urbano');
INSERT dbo.TipoNumero VALUES(5, 'FaxLDAP');
INSERT dbo.TipoNumero VALUES(6, 'InternoLDAP');
GO
SELECT *
FROM dbo.TipoNumero
ORDER BY
CASE descrizione
WHEN 'Interno' THEN 1
WHEN 'FaxLDAP' THEN 2
WHEN 'InternoLDAP' THEN 3
ELSE 99
END;
/* Output:
Id descrizione
----------- ---------------
1 Interno
5 FaxLDAP
6 InternoLDAP
2 domicilio
3 Cellulare
4 Urbano
(6 row(s) affected)
*/
DROP TABLE dbo.TipoNumero;
Attenzione, in caso le righe siano molte (alcune migliaia) questa soluzione comporterà problemi di performances dato che quella clausola ORDER BY impedirà l'utilizzo di eventuali indici definiti sulla colonna descrizione causando un table scan (heap) oppure una scansione dell'intero indice clustered (se presente).
>un grazie anticipato
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org