Въпрос за MS SQL Server 2000
1 отговора
110 прегледа
Въпрос за 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)
Може ли някой да ми помогне?
В момента прехвърлям приложението си от 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)
Може ли някой да ми помогне?
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;
(@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;