Въпрос за MS SQL Server 2000

1 отговора 110 прегледа
#1

Въпрос за MS SQL Server 2000

Имам следния въпрос:

В момента прехвърлям приложението си от Access към MS SQL Server 2000. Имам много SQL-код за Access, който ползва функцията IIF. Както и да се опитвах в SQL Server, там функция IIF явно не се поддържа. Там, разбира се има много по мощни оператори като CASE, обаче аз имам страшно много SQL-код с IIF, който се генерира от клиентската програма и би било много хубово да намеря начин да го ползвам поне в началото.
В крайна сметка мога ли да ползвам IIF в SQL Server по някакъв начин? Опитах се да си направя User Defined Function, която да се казва IIF и да има следния синтаксис:
IIF(<условие>,<ако вярно>,<ако невярно>), но не успях да я накарам за параметъра <условие> да приеме израз а не някакъв SQL Server data type. Мога ли да направя UDF, която в крайна сметка да работи подобно на: IIF(Quantity = 5,Quantity,Null)

Може ли някой да ми помогне?

Отговор
в отговор на Paco #2

Re: Въпрос за MS SQL Server 2000

CREATE FUNCTION IIF
(@Condition int, @IfZero int, @IfNotZero int)
RETURNS int
AS
BEGIN
IF (@Condition = 0)
RETURN ( @IfZero )

RETURN ( @IfNotZero )
END

/* usage */

SELECT IIF(Quantity-5, Quantity, NULL) FROM AlaBala;

Отговор