SQL Server - 案例陈述

标签 sql sql-server syntax case

我几乎可以肯定您无法在案例陈述的上下文中执行此操作,并且我无法找到任何有关它的文档,但是是否可以执行以下操作:

SELECT CASE WHEN testValue > 2 
THEN testValue(Without Repeating it) ELSE FailValue)
END 
FROM Table 

一个更好、更彻底的例子:

Select CASE WHEN (Foo-stuff+bar) > 2 
THEN Conditional statement without >2 Else "Fail"
END 
FROM TABLE

我正在寻找一种在不重复条件查询的情况下创建选择的方法。

编辑:由于我的例子很差,并且缺乏我正在寻找的答案:

testValue = (Table.A / Table.B) * Table.C Table.D

SELECT CASE WHEN testValue > 2 
THEN testValue ELSE FailValue)
END 
FROM Table 

最佳答案

像这样

DECLARE @t INT=1

SELECT CASE
            WHEN @t>0 THEN
                CASE
                    WHEN @t=1 THEN 'one'
                    ELSE 'not one'
                END
            ELSE 'less than one'
        END

编辑: 在更多地研究这个问题之后,我认为最好的选择是创建一个计算该值的函数。这样,如果您最终有多个需要完成计算的地方,那么您只有一个点来维护逻辑。

关于SQL Server - 案例陈述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233077/

相关文章:

Java 语法 : { . .. } - 那是什么?

Mysql 查询字符串组合结果

c# - 在 Linq 一栏中加入 Records?

sql-server - Powershell SQLServer 模块

sql-server - 如何将字符串转换为 UTF-8 编码的字符串,反之亦然?

regex - 为什么 Visual Studio 使用如此奇怪的正则表达式语法

带约束的 Mysql 查询出现错误

java - 如何修改我的事件处理程序以登录数据库,以便 SQLException 被视为不正确的登录并且程序继续?

c# - Entity Framework Core 6.0.13 - 为连接实体插入负外键值

powershell - 是否可以通过.Key而不是[“Key”]访问Powershell哈希表?