当前位置: 首页 > 面试题库 >

TSQL-表值函数内的If..Else语句-无法通过

章博耘
2023-03-14
问题内容

发布之前,我读过几篇有关开发USD函数的文章,但尚未遇到解决我的问题的方法…如下:

我有一个非常简单的数据库,该数据库存储篮球运动员,并由ID,Age,Height和Name列组成。我想做的是使用一个参数@set
varchar(10)实现一个函数’height’,该函数取决于一个@set值将触发不同的select语句

我试图实现的是伪代码:

CREATE FUNCTION [dbo].[age](@set varchar(10))
RETURNS TABLE
AS
BEGIN

    IF  (@set = 'tall')
         SELECT * from player where height > 180

    ELSE IF (@set = 'average')
         SELECT * from player where height >= 155 and height <=175

    ELSE IF (@set = 'low')
         SELECT * from player where height < 155
END

谁能给我一个提示如何实现它?


问题答案:

最简单的形式永远是最好的

CREATE FUNCTION [dbo].[age](@set varchar(10))
RETURNS TABLE
AS RETURN
SELECT * from player
where ((@set = 'tall' and height > 180)
   or (@set = 'average' AND height >= 155 and height <=175)
   or (@set = 'low' AND height < 155))
GO

这种形式称为INLINE表函数,这意味着SQL Server可以自由扩展它,以便将播放器直接连接到更大查询的行内其他表,从而使其比多语句表值函数的性能
无限 好1

不过,您可能更喜欢这样做,以使您的范围是完整的(您的差距介于175和180之间)

where ((@set = 'tall' and height > 180)
   or (@set = 'average' AND height >= 155 and height <= 180)
   or (@set = 'low' AND height < 155))

当解析变量@set时,SQL Server负责使分支短路。

1夸张,但只有一点点



 类似资料:
  • Swift 条件语句 一个 if 语句 后可跟一个可选的 else if...else 语句,else if...else 语句 在测试多个条件语句时是非常有用的。 当你使用 if , else if , else 语句时需要注意以下几点: if 语句后可以有 0 个或 1 个 else,但是如果 有 else if 语句,else 语句需要在 else if 语句之后。 if 语句后可以有 0

  • else语句可以与if语句结合使用。 else语句包含else语句中的条件表达式解析为0或FALSE值时执行的代码块。 else语句是一个可选语句, else后面最多只能有一个else语句。 语法 (Syntax) if...else语句的语法是 - if expression: statement(s) else: statement(s) 流程图 (Flow Diagram) 例

  • 问题内容: 函数声明如何处理? 此示例在Chrome和Firefox中产生不同的输出。Chrome输出,而FF输出。 问题答案: 当问这个问题时,ECMAScript5(ES5)盛行。在ES5的严格模式下,函数声明不能​​嵌套在一个块中,如问题所示。在非严格模式下,结果是不可预测的。不同的浏览器和引擎针对如何处理块内的函数声明实现了自己的规则。 许多浏览器都支持ECMAScript2015(ES2

  • 这可能是一个非常愚蠢的问题,但Java的这句台词是什么意思呢? 我知道它与一个if函数有关,但我试图用if重写它。但我不知道它是怎么工作的。

  • 我想问一下如何使用下面的代码执行if语句?我试过了,但它给了我一个错误;它说不能把void变成bool。有什么建议吗?

  • 主要内容:if 语句,实例,if...else 语句,实例,if...else if...else 语句,实例,if...else 嵌套语句,实例Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: if 语句 if 语句有布尔表达式及之后的语句块组成。 语法 if 语句的语法格式如下: 如果布尔表达式为 true 则执行大括号内的语句块,否则跳过大括号内的语句块,执行大括号之后的语句块。 实