第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

CAST和IsNumeric

CAST和IsNumeric

子衿沉夜 2019-11-19 09:55:43
為什么以下查詢返回“將數(shù)據(jù)類型varchar轉(zhuǎn)換為bigint時(shí)出錯(cuò)”?IsNumeric不使CAST安全嗎?我已經(jīng)嘗試了轉(zhuǎn)換中的每個(gè)數(shù)值數(shù)據(jù)類型,并得到相同的“錯(cuò)誤轉(zhuǎn)換...”錯(cuò)誤。我不認(rèn)為結(jié)果數(shù)的大小有問題,因?yàn)橐绯鍪且粋€(gè)不同的錯(cuò)誤。有趣的是,在Management Studio中,結(jié)果實(shí)際上在錯(cuò)誤再次出現(xiàn)之前一瞬間顯示在結(jié)果窗格中。SELECT CAST(myVarcharColumn AS bigint)  FROM myTable  WHERE IsNumeric(myVarcharColumn) = 1 AND myVarcharColumn IS NOT NULL  GROUP BY myVarcharColumn有什么想法嗎?
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果varchar值可以轉(zhuǎn)換為ANY數(shù)字類型,則IsNumeric返回1。這包括int,bigint,十進(jìn)制,數(shù)字,實(shí)數(shù)和浮點(diǎn)數(shù)。


科學(xué)計(jì)數(shù)法可能會(huì)給您造成問題。例如:


Declare @Temp Table(Data VarChar(20))


Insert Into @Temp Values(NULL)

Insert Into @Temp Values('1')

Insert Into @Temp Values('1e4')

Insert Into @Temp Values('Not a number')


Select Cast(Data as bigint)

From   @Temp

Where  IsNumeric(Data) = 1 And Data Is Not NULL

您可以使用IsNumeric技巧,使具有科學(xué)計(jì)數(shù)法的數(shù)字返回0。您可以應(yīng)用類似的技巧來防止十進(jìn)制值。


IsNumeric(YourColumn +'e0')


IsNumeric(YourColumn +'.0e0')


試試看。


SELECT CAST(myVarcharColumn AS bigint)

FROM myTable

WHERE IsNumeric(myVarcharColumn + '.0e0') = 1 AND myVarcharColumn IS NOT NULL

GROUP BY myVarcharColumn


查看完整回答
反對(duì) 回復(fù) 2019-11-19
  • 3 回答
  • 0 關(guān)注
  • 619 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)