Ho una tabella Studente si compone di seguenti parametricon valori di tabella funzioni utilizzando IF in SQL Server
[ID] [nvarchar](50) NOT NULL,
[Firsname] [nvarchar](50) NOT NULL,
[Lastname] [nvarchar](50) NOT NULL,
[Melicode] [nchar](10) NOT NULL,
[City] [nvarchar](50) NOT NULL,
[Province] [nvarchar](50) NOT NULL,
[Active] [int] NULL
Voglio scrivere una funzione denominata Mostra tabella con valori che ha un parametro come numero. la funzione agirà come segue
- se @number = 1, restituisce tutte le colonne dalla tabella Student
- se @number = 2, restituisce solo città da Student
- se @number = 3, restituisce solo Provincia da Student
ho scritto il seguente T-SQL, ma funziona solo per (if (@number = 1)). Quando l'utente immette @number come 2 o 3, la funzione non funziona. Grazie
Create function Show(@number int)
RETURNS @result TABLE
(
[ID] [nvarchar](50) NOT NULL,
[Firsname] [nvarchar](50) NOT NULL,
[Lastname] [nvarchar](50) NOT NULL,
[Melicode] [nchar](10) NOT NULL,
[City] [nvarchar](50) NOT NULL,
[Province] [nvarchar](50) NOT NULL,
[Active] [int] NULL
)
AS
BEGIN
IF (@number = 1)
INSERT INTO @result SELECT * from Student
IF (@number = 2)
INSERT INTO @result (City) values ((SELECT City from Student))
IF (@number = 3)
INSERT INTO @result (Province) values ((SELECT Province from Student))
RETURN -- @Players (variable only required for Scalar functions)
END
go
select *from dbo.show(1)
Non funziona? Non posso credere –