2011-04-27 42 views
2

喜相反更換0到什麼我發現在互聯網上,我需要一個空替換0,這樣在表中,我將有一個空,而不是0SQL函數與空

目前我做了以下內容:

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 

這是給我下面的錯誤:

Msg 102, Level 15, State 1, Procedure retunNull, Line 6 Incorrect syntax near '0'. Msg 102, Level 15, State 1, Procedure retunNull, Line 11 Incorrect syntax near 'END'.

誰能幫助我,引導我正確的方向? PS這必須在一個函數中完成,因爲它將被多次使用

回答

11

您錯過了SET聲明。 SET @num = NULL和測試應該是IF(@num = '0')

難道你不能只使用內置的NULLIF函數,而不是創建一個標量UDF?

+1

10x,不知道關於nullif,查看它並且是有道理的。 – IanCian 2011-04-27 13:29:23

+0

用於'NULLIF'的+1 – onedaywhen 2011-04-27 13:56:57

1
SELECT NULLIF(MyColumn, 0) 
FROM MyTable