2010-04-30 210 views
-5

我已經爲你編了一部分代碼,我想知道輸出,我需要你的幫助,因爲沒有任何幫助我的身體,我認爲輸出是A,這是正確的嗎?謝謝。這段代碼的輸出是什麼?

declare @v1 varchar(20),@v2 varchar(20) 
select @v1 = 'NULL' 
if @v1 is null and @v2 is null 
select 'A' 
else 
select 'B' 

編輯:也是@ v2的價值是什麼?謝謝

+0

請原諒我的無知,但它可能會幫助到指定什麼樣的數據庫 - 甲骨文,SQL Server等 – 2010-04-30 14:33:17

+0

你爲什麼不跑它看到了嗎?這是功課嗎? – Aaronaught 2010-04-30 14:34:50

+0

這必須是家庭作業... – 2010-04-30 14:35:45

回答

0

我會說這是B,因爲= NULL= 'NULL'是兩個不同的東西。

5

你爲什麼不自己嘗試一下?

輸出將是B因爲@v1被分配了一個字符串「NULL」,這是不一樣的特殊NULL,意思是「沒有價值」

+0

+1這也是我的答案。 – 2010-04-30 14:36:41

1

2008年MSSQL返回B.這是因爲@ v1是字符串'NULL',而不是實際爲空。如果您將其更改爲

select @v1 = null 

然後,它會返回一個

+0

@ v2的價值是什麼? – user329820 2010-04-30 14:41:39

+0

由於沒有賦值(僅聲明),所以@ v2的值爲空。所以想想看,「select @ v1 = null」真的是多餘的,因爲它已經是空的開始。 – 2010-04-30 16:45:42

0

@ v2是空的,因爲你不assing給它的任何價值。 輸出爲B'cause NULL是不一樣的字符串「NULL」