我将如何处理以下查询?

SELECT
CASE LEN(field1)
WHEN > 15    --Error: Incorrect syntax near '>'.
THEN SUBSTRING(field1, 1, 15)
ELSE field1
END
AS 'My Field'
FROM MyTbl

你不能在 CASE 子句中做这样的比较吗?

最佳答案

SELECT
CASE
WHEN LEN(field1) > 15
THEN SUBSTRING(field1, 1, 15)
ELSE field1
END
AS 'My Field'
FROM MyTbl

当你按照你的方式编写它时,把它想象成一个 switch 语句,在那里你进行隐式相等比较。如果您需要更复杂的逻辑,则需要以这种方式编写 CASE

关于sql-server - SQL Server CASE 子句中的比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8565735/

10-12 03:11
查看更多