我有一個浮動列,稱它爲錢。將空字符串作爲NULL和零作爲零插入浮動列
我試圖插入0值0和空字符串值應該是NULL
INSERT INTO t1 (money) values ('0.00')
INSERT INTO t1 (money) values ('')
SELECT * FROM t1
這是結果,我想實現
money
0
NULL
我試着用一個INSTEAD OF INSERT
觸發器(我用'123'來顯示滿足哪種條件)
iif(CAST(money AS nvarchar) = '', NULL, iif(money < '0.0001', '123', money))
SELECT * FROM t1
money
123
123
所以,我似乎無法將我的浮動列與空字符串進行比較。
但是,試圖跟隨它看起來像實際上這是可能的時候:
CASE WHEN (money = '' THEN '456' ELSE iif(money < '0.0001', '123', money))
SELECT * FROM t1
money
456
456
這讓我非常不確定如何SQL Server的數據類型的轉換內部。
你插入其他列呢?您表中的「money」字段是否設置爲「NOT NULL」?因爲如果你有其他的列,並且這個列沒有設置爲'NOT NULL',那麼就不要在插入文件中包括它...... – JohnHC
Re:你最後的聲明,SQL Server的數據類型轉換記錄在MSDN上:https: //msdn.microsoft.com/en-us/library/ms191530.aspx – alroc
@johnhc我插入了很多列,其中很多是浮點類型,它們都允許爲NULL。 – Mance