Я пытаюсь сделать такой переключатель, как C# в sql или если с разными условиями.CASE WHEN THEN с подзапросом
Я использую это, но это не работает вообще:
это для хранимой процедуры:
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'? –
Он говорит, что перед каждой версией есть ошибка systax, если – Julien698
'CASE' является T-SQL - это ** выражение ** - он может возвращать одно из нескольких значений. Но это ** НЕ ** оператор управления потоком, как в C#, вам нужно использовать 'IF ... THEN ....' для этого –