ich Student Tisch besteht aus folgenden ParameternTabellenwertfunktion unter Verwendung von IF-Anweisung 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
Ich möchte eine Tabellenwertfunktion namens anzeigen schreiben, die einen Parameter als Nummer hat. Die Funktion wird wie folgt
- handeln, wenn @number = 1, alle Spalten aus Tabelle Student zurück
- wenn @number = 2, kehrt nur Stadt von Studenten
- wenn @number = 3, kehrt nur Provinz von Student
Ich schrieb die folgende T-SQL, aber es funktioniert nur für (if (@number = 1)). Wenn der Benutzer @number als 2 oder 3 eingibt, funktioniert die Funktion nicht. Danke
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)
einfügen funktioniert nicht? Kann nicht glauben. –