sql - 函数中关键字“with”附近的语法不正确
问题描述
我写了一个查询,但在关键字“with”附近出现语法错误。但我无法理解如何解决它。我正在使用 SQL Server。
CREATE FUNCTION getNthHighestSalary(@N INT) RETURNS INT AS
BEGIN
RETURN (
/* Write your T-SQL query statement below. */
with result as (
select salary,
dense_rank() over(order by salary desc) as salary_rank
from employee
)
select salary
from result
where result.salary_rank = N
);
END
解决方案
这是一个标量值用户定义函数,因此您分配一个返回类型的局部变量,然后分配return
它。
例如
CREATE FUNCTION getNthHighestSalary(@N INT) RETURNS INT AS
BEGIN
declare @rv int;
with result as
(
select salary,
dense_rank() over(order by salary desc) as salary_rank
from employee
)
select @rv = salary
from result
where result.salary_rank = @N;
return @rv;
END
推荐阅读
- javascript - Redux 存储更改后 React 组件不更新
- android - 如何在firebase中检查用户电子邮件和密码验证以登录
- php - 从 Array Key 值中获取图像 src 并在 PHP 中显示
- docker - 独立容器和 swarm 服务之间的连接
- spring - Spring 使用什么来进行反序列化?
- java - 如何比较 HashMaps
> 当值对的顺序不正确时 - django - Azure webapp 部署 docker 容器未响应 HTTP ping
- python - 带有标题标签的 BS4 类
- c# - 将 Asp.Mvc 和 Web.Api 在同一个解决方案中部署到 IIS
- amazon-web-services - 如何在 EC2 终止期间删除 AWS CloudWatch 警报