2014-02-25 173 views

回答

4

試試這個

if (@name is null or @value = '') //it will indicate whether it contains a value or not 
4

IS NOT NULL

由於NULL會指示缺少值。

1

一個未初始化的變量總是有空值。您可以使用IS NOT NULL檢查..

5

就直接做IF,使用EXISTS代替:

IF EXISTS(SELECT * FROM tb_new_product_Name_id 
     where [email protected]) 
BEGIN 
    --Do something because a row existed with that name 
END 

我們也許可以用簡化,以進一步協助你的代碼,如果你告訴我們更多關於你打算做的事情,確認tb_new_product_Name_id中存在一行。它看起來像你正在編寫非常程序化的代碼 - 首先我會做X,然後我會做Y,然後我會做Z等等.SQL擅長作爲一種語言,你告訴它「做什麼」 - 用於你想要計算的整個數據集 - 而不是「怎麼做」逐步逐行地進行。

2

您可以檢查是否爲空使用IS NULL如下;

DECLARE @name VARCHAR(20) 

SET @name = (SELECT Product_Name FROM tb_new_product_Name_id where [email protected]) 

IF @name IS NULL -- # Here is where you check it 
BEGIN 
    -- # Handle null @name 
END 
ELSE 
BEGIN 
    -- # @name has value 
END 

這我怎麼會做,但如果你是對空檢查的話,我會去爲Demien_The_Unbeliever建議只聲明@name變量。使用EXISTS你甚至都不需要@name變量

+2

對於我們的眼睛來說,它甚至不用於'NULL'檢查 - 它們在'SELECT'子句中選擇相同的列,這也是WHERE子句中的過濾器,這純粹是存在檢查。 –

+0

@Damien_The_Unbeliever好點,我總是錯過了。除非它是'NULL',否則; '@ name'必須等於'@ productName'。那麼'@名稱'是一個不必要的臨時變量。 –

0

最近遇到在那裏沒有值的字段正在與爲null檢查的情況下,不爲空,但不工作,並在調試中發現,如果沒有值,則該油田得到一個0.因此,檢查值=''或值= 0或值爲空,其中三個將檢查它是否爲空。

相關問題