我创建了一个名为 [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)
。
关于mysql - sql server 中的内联表值函数不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48684058/