Функция SQL Замена 0 на ноль - PullRequest
2 голосов
/ 27 апреля 2011

Привет, в отличие от того, что я нашел в интернете, мне нужно заменить 0 на ноль, чтобы в таблице вместо 0 был ноль.

В настоящее время я сделал следующее:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION retunNull(@num nvarchar(255))
RETURNS nvarchar(255)
AS
BEGIN
    IF(@num IS '0')
        BEGIN
        @num = NULL
        END
        RETURN @num
END
GO

это дает мне следующую ошибку:

Сообщение 102, Уровень 15, Состояние 1, Процедура retunNull, Строка 6 Неверный синтаксис около '0'. Сообщение 102, уровень 15, состояние 1, процедура retunNull, строка 11 Неверный синтаксис рядом с 'END'.

Может ли кто-нибудь помочь мне и направить меня в правильном направлении? PS Это должно быть сделано в функции, так как она будет использоваться несколько раз

Ответы [ 2 ]

12 голосов
/ 27 апреля 2011

Вы пропустили оператор SET. SET @num = NULL и тест должен быть IF(@num = '0')

Разве вы не можете просто использовать встроенную функцию NULLIF вместо создания скалярного UDF?

2 голосов
/ 27 апреля 2011
SELECT NULLIF(MyColumn, 0)
FROM MyTable
...