我尝试在sql中执行类似c#的切换或者如果使用不同的条件。CASE然后当子查询
我使用,但它不会在所有的工作:
它是一个存储过程:
CREATE PROCEDURE [dbo].[Mystoredprocedure]
@Value INT
AS
BEGIN
SET NOCOUNT ON;
CASE
WHEN @Value = 0
THEN SELECT * FROM mytable1
WHEN @Value = 1
THEN SELECT * FROM mytable2
WHEN @Value = 2
THEN SELECT * FROM mytable3
END
但它不工作,我搜索的例子,但我不觉得有什么我真的想要。
我尝试过:
CREATE PROCEDURE [dbo].[Mystoredprocedure]
@Value INT
AS
BEGIN
SET NOCOUNT ON;
IF @Value = 0
BEGIN
SELECT * FROM MyTable1
END
ELSE IF @Value = 1
BEGIN
SELECT * FROM MyTable2
END
ELSE IF @Value = 2
BEGIN
SELECT * FROM Mytable3
END
END
有您的解决方案,以解决这个问题?谢谢 !
你对'if'解决方案有什么问题? – 2014-09-01 12:46:19
它说,如果 – Julien698 2014-09-01 12:51:57
“CASE”是T-SQL是**表达式,那么它之前会有一个systax错误** - 它可以返回几个值之一。但它是** NOT **像C#中的流程控制语句 - 您需要使用“IF ... THEN ....”此 – 2014-09-01 12:58:34