Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 результат скалярной функции в WHEN - как?  [new]
netivan
Member

Откуда:
Сообщений: 8768
Очень хочется засунуть в условие WHEN результат работы скалярной функции, вот пример:
функция
ALTER FUNCTION [dbo].[TempFunct]
(
	-- Add the parameters for the function here
	@p1 money, @p2 money
)
RETURNS bit
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ResultVar bit;

	IF(@p1>@p2) SET @ResultVar= 1
    ELSE SET @ResultVar= 0
	RETURN @ResultVar;
END

Вызов:
declare @err int
select @err=
case
when 
	[tempdb].[dbo].[TempFunct] ( 11 ,12) 
then 111
else -111 

Ошибка: An expression of non-boolean type specified in a context where a condition is expected, near 'then'.
12 янв 12, 11:49    [11890976]     Ответить | Цитировать Сообщить модератору
 Re: результат скалярной функции в WHEN - как?  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
netivan,

А сравнение-то где у вас? =)
select @err = case when [dbo].[TempFunct] ( 11 ,12) = 1 then 111 else -111 end
12 янв 12, 11:53    [11891032]     Ответить | Цитировать Сообщить модератору
 Re: результат скалярной функции в WHEN - как?  [new]
netivan
Member

Откуда:
Сообщений: 8768
SomewhereSomehow,
да я ставил была ошибка, забыл END =)). Удалите топик пожалуйста!!!
12 янв 12, 11:55    [11891055]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить