SQL хранимые процедуры, возврат значения в зависимости от языка

Доброе время суток, столкнулся с проблемой возврата значений из процедуры

Как в идеале должно работать 

exec get_info --> полный список id, text_ru, text_en
exec get_info @id = 1 --> конкретный id, text_ru, text_en
exec get_info @lang = 'ru' --> полный список id, text_ru
exec get_info @id = 1, @lang = 'ru'--> конкретный id, text_ru, @lang


Написал такую вот процедуру, но она не отрабатывает должным образом, поскольку case не может вернуть 2 значения.


CREATE OR ALTER PROCEDURE get_info 
@id int = NULL,
@lang nvarchar(15) = NULL
AS
BEGIN
 SET NOCOUNT ON;
 SELECT id,
   CASE @lang
    WHEN 'ru' THEN text_ru
    WHEN 'en' THEN text_en
    ELSE (text_en, text_ru)
   END
 FROM task_text
 WHERE (@id IS NULL OR id = @id);
END

Какой функционал стоит импользовать для решения задачи?


Ответы (0 шт):