Torna al Thread

USE tempdb; CREATE TABLE dbo.Albergo( Codalb int NOT NULL, Descrizione varchar(25) NOT NULL, CodComune int NOT NULL, codtipologia int NOT NULL, desctipologia Varchar(15) NOT NULL, idcategoria int NOT NULL, desccategoria Varchar(25) NOT NULL, CONSTRAINT PK_Albergo PRIMARY KEY(Codalb, CodComune) ); INSERT dbo.Albergo VALUES (1,'Albergo prova1',60038,0,'Albergo',0,'5 stelle'); INSERT dbo.Albergo VALUES (2,'Albergo prova2',60038,0,'Albergo',1,'4 stelle'); INSERT dbo.Albergo VALUES (3,'Albergo prova3',60038,0,'Albergo',1,'4 stelle'); INSERT dbo.Albergo VALUES (4,'Albergo prova4',60038,0,'Albergo',2,'3 stelle'); INSERT dbo.Albergo VALUES (5,'Albergo prova5',60038,0,'Albergo',2,'3 stelle'); INSERT dbo.Albergo VALUES (6,'Albergo prova6',60038,0,'Albergo',2,'3 stelle'); INSERT dbo.Albergo VALUES (7,'Albergo prova7',60038,0,'Albergo',3,'4 stelle'); INSERT dbo.Albergo VALUES (8,'b&b prova1',60038,6,'b&b',6,'b&b'); INSERT dbo.Albergo VALUES (9,'b&b prova2',60038,6,'b&b',6,'b&b'); INSERT dbo.Albergo VALUES (10,'Affitta camere prova1',60038,7,'affitta camere',1,'affitta camere 1° cat.'); INSERT dbo.Albergo VALUES (11,'Affitta camere prova2',60038,7,'affitta camere',2,'affitta camere 2° cat.'); INSERT dbo.Albergo VALUES (12,'Affitta camere prova3',60038,7,'affitta camere',3,'affitta camere 3° cat.'); GO CREATE FUNCTION dbo.ufn_GetData( @idtipologia int, @idcategoria int ) RETURNS TABLE AS RETURN( SELECT * FROM dbo.Albergo WHERE (@idtipologia IS NULL OR codtipologia = @idtipologia) AND (@idcategoria IS NULL OR idcategoria = @idcategoria) ); GO SELECT * FROM dbo.ufn_GetData(NULL, NULL); /* Output: Codalb Descrizione CodComune codtipologia desctipologia idcategoria desccategoria ----------- ------------------------- ----------- ------------ --------------- ----------- ------------------------- 1 Albergo prova1 60038 0 Albergo 0 5 stelle 2 Albergo prova2 60038 0 Albergo 1 4 stelle 3 Albergo prova3 60038 0 Albergo 1 4 stelle 4 Albergo prova4 60038 0 Albergo 2 3 stelle 5 Albergo prova5 60038 0 Albergo 2 3 stelle 6 Albergo prova6 60038 0 Albergo 2 3 stelle 7 Albergo prova7 60038 0 Albergo 3 4 stelle 8 b&b prova1 60038 6 b&b 6 b&b 9 b&b prova2 60038 6 b&b 6 b&b 10 Affitta camere prova1 60038 7 affitta camere 1 affitta camere 1° cat. 11 Affitta camere prova2 60038 7 affitta camere 2 affitta camere 2° cat. 12 Affitta camere prova3 60038 7 affitta camere 3 affitta camere 3° cat. (12 row(s) affected) */ SELECT * FROM dbo.ufn_GetData(0, NULL); /* Output: Codalb Descrizione CodComune codtipologia desctipologia idcategoria desccategoria ----------- ------------------------- ----------- ------------ --------------- ----------- ------------------------- 1 Albergo prova1 60038 0 Albergo 0 5 stelle 2 Albergo prova2 60038 0 Albergo 1 4 stelle 3 Albergo prova3 60038 0 Albergo 1 4 stelle 4 Albergo prova4 60038 0 Albergo 2 3 stelle 5 Albergo prova5 60038 0 Albergo 2 3 stelle 6 Albergo prova6 60038 0 Albergo 2 3 stelle 7 Albergo prova7 60038 0 Albergo 3 4 stelle (7 row(s) affected) */ SELECT * FROM dbo.ufn_GetData(0, 1); /* Output: Codalb Descrizione CodComune codtipologia desctipologia idcategoria desccategoria ----------- ------------------------- ----------- ------------ --------------- ----------- ------------------------- 2 Albergo prova2 60038 0 Albergo 1 4 stelle 3 Albergo prova3 60038 0 Albergo 1 4 stelle (2 row(s) affected) */ DROP FUNCTION dbo.ufn_GetData; DROP TABLE dbo.Albergo;
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5