任何人都可以帮助解决这个错误吗?
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”无效。
我想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”附近的语法不正确。
这有什么可能吗?
我正在尝试使用 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 级嵌套”。
我有一个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。