Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование CASE в теле SP / 7 сообщений из 7, страница 1 из 1
20.08.2002, 10:51:38
    #32044447
Anatoliy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование CASE в теле SP
Возможно ли использование оператора CASE в теле SP в его традиционном (для VisualBasic) значении. То есть в зависимости от значения переменной @i выбирать определенные варианты действий?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
DECLARE @i INT
	SET @i =  4 

CASE @i 
            WHEN  2  THEN
		BEGIN
			PRINT 'Сделайте два приседания'
		END

	WHEN  4  THEN 
		BEGIN
			PRINT 'Сделайте черыре приседания'
			 --Совершаем некоторые действия в SP
 
		END

	ELSE 
		BEGIN	
			PRINT 'Приседайте до упаду'
		END
END
...
Рейтинг: 0 / 0
20.08.2002, 10:52:42
    #32044448
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование CASE в теле SP
Угу
...
Рейтинг: 0 / 0
20.08.2002, 11:00:58
    #32044453
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование CASE в теле SP
to 3JIA9I CyKA:
Ну и выполни тогда этот код.

Ответ - нет, используй IF
...
Рейтинг: 0 / 0
20.08.2002, 11:06:12
    #32044457
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование CASE в теле SP
Sorry!
Едва проснулся. (А может ещё нет...)
...
Рейтинг: 0 / 0
20.08.2002, 12:20:06
    #32044494
Использование CASE в теле SP
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
DECLARE @i INT
SET @i =  4 
IF @i =  2 
	PRINT 'присядьте 2 раза'
ELSE IF @i =  4 
	BEGIN	PRINT 'присядем на дорожку!'
		PRINT '...здесь выполняется крутой код...'
	END
ELSE 
	PRINT 'приседайте до одури!'


Такая конструкция тоже весьма неплохо выглядит... Однажды я не поленился в написании 96 IF`ов...
...
Рейтинг: 0 / 0
20.08.2002, 13:52:57
    #32044572
Guest1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование CASE в теле SP
В случае с CASE раьотать будет так
DECLARE @i INT
SET @i = 1
print CASE @i WHEN 2 THEN 'Сделайте два приседания'
WHEN 4 THEN 'Сделайте черыре приседания'
ELSE 'Приседайте до упаду'

END
...
Рейтинг: 0 / 0
20.08.2002, 14:47:45
    #32044597
qu-qu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование CASE в теле SP
Тут главное не забывать, что CASE в T-SQL и CASE в VB - совершенно разные конструкции языка...
В первом - это выражение ("expression"), т.е. то, что может "вычислено" в одно-единственное значение...
Во втором же - это ключевое слово ("keyword"), определяющее логику исполнения потока команд ("Control flow statement")...

Если хотите не путаться - запомните, что CASE в T-SQL работает как функция...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование CASE в теле SP / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]