我将如何处理以下查询?
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/