繁体   English   中英

SQL Server中的内联表值函数不返回数据

[英]inline table valued functions in sql server doesn't return data

我创建了一个名为[EMPLOYEE_DATEOFBIRTH]的表

CREATE TABLE EMPLOYEE_DATEOFBIRTH  (ID int primary key not null, 
NAME nvarchar(20) not null,
DATE_OF_BIRTH DATETIME2(7) not null, 
GENDER nvarchar(10) not null,
DEP_ID int not null)

并将数据插入此表。

INSERT INTO EMPLOYEE_DATEOFBIRTH  (ID, NAME, DATE_OF_BIRTH,GENDER,DEP_ID) VALUES (1,'Jack','1980-12-30 00:00:00.000','MALE',1)

INSERT INTO EMPLOYEE_DATEOFBIRTH (ID, NAME, DATE_OF_BIRTH,GENDER,DEP_ID) VALUES (2,'Ann','1982-09-01 12:02:36.260','FEMALE',2)

然后我创建了一个函数,该函数按性别返回员工列表

CREATE FUNCTION fnEmployeeByGender (@Gender nvarchar)
RETURNS TABLE
AS 
RETURN 
        (SELECT ID, NAME, DATE_OF_BIRTH,GENDER,DEP_ID 
        FROM EMPLOYEE_DATEOFBIRTH
        WHERE GENDER=@Gender)

执行此功能,我使用查询,但不返回任何内容

SELECT * FROM fnEmployeeByGender('MALE')

这可能是什么原因? 提前致谢。

您的错误在这里: @Gender nvarchar 如果您没有为nvarchar指定长度,则默认为1。 因此,您仅在搜索GENDER = 'M' 通过给出一个长度来解决它: @Gender nvarchar(10)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM