CREATE FUNCTION 测试函数(@vsex char(15)) RETURNS varchar(15) AS BEGIN DECLARE @vname varchar(20) SELECT TOP 1 @vname = vname FROM VisitorTable WHERE vsex = @vsex RETURN @vname END我要是想返回所有结果呢
时间: 2024-03-25 13:38:24 浏览: 119
有返回值的函数
如果你想返回 `VisitorTable` 表中所有满足 `vsex = @vsex` 条件的 `vname` 值,可以使用以下函数:
```
CREATE FUNCTION 测试函数(@vsex char(15)) RETURNS varchar(8000) AS
BEGIN
DECLARE @vnames varchar(8000) = ''
SELECT @vnames = @vnames + vname + ',' FROM VisitorTable WHERE vsex = @vsex
IF LEN(@vnames) > 0 SET @vnames = LEFT(@vnames, LEN(@vnames) - 1)
RETURN @vnames
END
```
这个函数会将满足条件的 `vname` 值拼接为一个字符串,并用逗号分隔。注意,我们将 `@vnames` 的类型修改为 `varchar(8000)`,以便它可以存储足够多的字符串。同时,我们也使用了 `LEFT` 函数将最后一个逗号去掉,以保证函数返回的结果是一个合法的字符串。
阅读全文