标签: case

CASE语句问题

任何人都可以帮助解决这个错误吗?

SQL:

SELECT 
    InvoiceDate, 
    BillingAddress, 
    BillingCity, 
    Total,

    CASE
      WHEN Total < 2.00 THEN 'Baseline Purchase'
      WHEN Total BETWEEN 2.00 AND 6.99 THEN 'Low Purchase'
      WHEN Total BETWEEN 7.00 AND 15.00 THEN 'Target Purchase'
      ELSE 'Top Performer'
    END AS PurchaseType

FROM 
    invoices
WHERE
  PurchaseType = 'Top Performer'
ORDER BY 
  BillingCity
Run Code Online (Sandbox Code Playgroud)

错误:消息 207,级别 16,状态 1,第 13 行列名称“PurchaseType”无效。

sql-server case

0
推荐指数
1
解决办法
644
查看次数

情况下的结果表达式

我想case在 SQL Server中的表达式中给出结果的表达式。当我检查

链接:案例表达。但我还是很困惑。

例如。

Simple CASE expression: 
CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END 
Searched CASE expression:
CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END
Run Code Online (Sandbox Code Playgroud)

我想将 result_expression 作为以下示例查询。

select * from mytable where
CASE WHEN col1='12' THEN col2 like '%12%' ELSE col3 like '%12%' END
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

关键字“like”附近的语法不正确。

这有什么可能吗?

sql-server case

-1
推荐指数
1
解决办法
67
查看次数

如何使用具有 10 个以上条件的 CASE 语句更新列

我正在尝试使用 CASE 语句更新 SQL Server 2016 中的列,因为我必须根据不同的条件更改值。问题是我有超过 10 个条件,而且 SQL Server 似乎最多只允许 10 个条件级别。那么我该怎么做呢?这是我试图做的:

UPDATE my_table  
SET my_column = CASE 
    WHEN condition1 THEN expression1  
    WHEN condition2 THEN expression2  ...
Run Code Online (Sandbox Code Playgroud)

不是链接服务器,我还没有尝试在CASE表达式中放入 11 个条件。如果您查看文档,您会发现“SQL Server 仅允许在CASE表达式中进行 10 级嵌套”。

sql-server case update sql-server-2016

-1
推荐指数
1
解决办法
10万
查看次数

在 WHERE 子句的 CASE 表达式中使用 IS NULL

我有一个WHERE要在其中使用CASE表达式的子句。但是,我的CASE表达式需要检查字段是否为IS NULL.

如果@UserRole变量值 = 'Analyst',则SupervisorApprovedBy列值必须为NULL. 否则,我是说返回所有数据,即SupervisorApprovedBy = SupervisorApprovedBy.

我需要更改以下内容吗?

WHERE SupervisorApprovedBy = 
CASE 
    WHEN @UserRole = 'Analyst' THEN NULL
    ELSE SupervisorApprovedBy
END
Run Code Online (Sandbox Code Playgroud)

我不能使用=for NULL。经测试无效。

我希望返回所有行,包括那些 where SupervisorApprovedBy IS NOT NULL

null sql-server t-sql case

-3
推荐指数
2
解决办法
7万
查看次数

标签 统计

case ×4

sql-server ×4

null ×1

sql-server-2016 ×1

t-sql ×1

update ×1