在嘗試使用MSSQL時,遇到了一些我無法解釋的行爲。將NULL添加到varchar時使用ISNULL
我看着它時被添加到一個varchar會發生什麼NULL值,當我做下面的查詢:
SELECT
ISNULL(NULL + ' ', 'test')
我得到的結果是「德」。同樣,如果我更改任何其他單詞的單詞測試,我只會得到前兩個字母。如果我在+中增加空格的數量,我會在結果中得到額外的字母(所以NULL +'[two spaces]'給了我'tes')。任何想法是怎麼回事?
如果我聲明一個變量並將其設置爲NULL,例如
DECLARE @testnull AS varchar(32)
SET @testnull = NULL
SELECT
ISNULL(@testnull + ' ', 'test')
然後我得到結果'測試'(正如我所期望的)。
爲什麼'VARCHAR(1)''獲得「te''? – Kaf 2013-03-13 14:09:42
@Kaf當你添加''''時,它變成varchar(2)。 – 2013-03-13 14:10:03
我的朋友,你不停地驚歎於我在這個利基,+1一個美妙的答案! – 2013-03-13 14:17:00