use*_*071 3 sql sql-server sql-server-2008
目的:简单的程序; 当我的变量被分成3时,它返回单词'the',当它被分成5时它返回'hop',当它被分成3和5同时它返回两个单词.
DECLARE @Zmienna AS INT
SET @Zmienna = 0
WHILE @Zmienna < 999
BEGIN
PRINT @Zmienna +
CASE
WHEN @Zmienna/3=% THEN ' hip'
WHEN @Zmienna/5=% THEN ' hop'
END
SET @Zmienna = @Zmienna + 1
END
Run Code Online (Sandbox Code Playgroud)
错误
ERROR: Msg 156, Level 15, State 1, Line 8
Incorrect syntax near the keyword 'THEN'.
Msg 102, Level 15, State 1, Line 12
Incorrect syntax near 'END'.
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我会使用模数的其余部分(就像你尝试过的那样)并连接两个case语句(hiphop如果两个条件都为真,你将永远不会得到).你也需要,else ''否则你可以获得null价值:
CASE
WHEN @Zmienna % 3 = 0
THEN ' hip'
ELSE ''
END
+
CASE
WHEN @Zmienna % 5 = 0
THEN ' hop'
ELSE ''
END
Run Code Online (Sandbox Code Playgroud)
提示:如果两个条件都需要空格或其他文本,则true必须and在case语句中使用a :
CASE
WHEN @Zmienna % 3 = 0 and @Zmienna % 5 = 0
THEN ' hip hop'
WHEN @Zmienna % 3 = 0
THEN ' hip'
WHEN @Zmienna % 5 = 0
THEN ' hop'
END
Run Code Online (Sandbox Code Playgroud)