Tôi có một bảng Student bao gồm các thông số saubảng giá trị Chức năng sử dụng NẾU tuyên bố trong 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
tôi muốn viết một bảng giá trị hàm tên Hiện trong đó có một tham số như số. chức năng sẽ hoạt động như sau
- nếu @number = 1, trả về tất cả các cột từ bảng Student
- nếu @number = 2, sẽ chỉ trả lại thành phố từ Student
- nếu @number = 3, chỉ trả về tỉnh từ Student
tôi đã viết T-SQL sau, nhưng nó chỉ hoạt động (nếu (@number = 1)). Khi người dùng nhập @number là 2 hoặc 3, chức năng này không hoạt động. Cảm ơn bạn
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)
Không hoạt động? Không thể tin được. –