久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

SQL Server ISNUMERIC() 澄清

SQL Server ISNUMERIC() Clarification(SQL Server ISNUMERIC() 澄清)
本文介紹了SQL Server ISNUMERIC() 澄清的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有一個表 X,里面有一個 accountNo 的列表.該字段(accoutNo) 是一個nvarchar(8).現在的問題是有時我們也會在該字段中獲取字符,我想將其轉換為 bigint.

I have a table X with a list of accountNo's. This field(accoutNo) is a nvarchar(8). Now issue here is sometimes we get characters in this field as well and I want to convert it into bigint.

抱歉,我無法將其以表格形式放在這里.

Sorry I'am not able to put this in a table format here.

我可以檢查 accountNo 是否是數值:

I'am able to check if a accountNo is a numeric value or not:

select x.accountNo from x where ISNUMERIC(x.accountNo)=1

但是當我嘗試僅在 accountNo 是數字時才轉換值時,我仍然不能,我很困惑:

but when I try to only convert the values if an accountNo is numeric, I still can't, I'm confused:

select x.accountNo, convert(bigint,x.accountNo) from x where ISNUMERIC(x.accountNo)=1

我收到的具體錯誤:

消息 8114,級別 16,狀態 5,第 1 行錯誤轉換數據類型nvarchar 到 bigint.

Msg 8114, Level 16, State 5, Line 1 Error converting data type nvarchar to bigint.

示例數據

accountNo  A0001001  A0001002  A0001003  /0005856  !0005046  ~0005872     A.005698 A/005623 A./00578 ./214536

推薦答案

你應該使用 CAST()TRY_CAST() 代替:

You should use CAST() or TRY_CAST() instead:

declare @test nvarchar(8) = '12345678'
select cast(@test as bigint) -- errors on failure
select try_cast(@test as bigint) -- returns null on failure

另外,重要的是要指出 ISNUMERIC() 并不完美.來自文檔:

Also, important to point out the ISNUMERIC() isn't perfect. From the docs:

ISNUMERIC 對某些不是數字的字符返回 1,例如加號 (+)、減號 (-) 和有效的貨幣符號,例如美元符號 ($).有關貨幣符號的完整列表,請參閱 money 和 smallmoney (Transact-SQL).

ISNUMERIC returns 1 for some characters that are not numbers, such as plus (+), minus (-), and valid currency symbols such as the dollar sign ($). For a complete list of currency symbols, see money and smallmoney (Transact-SQL).

出于這個原因,我認為邏輯檢查在這里沒有價值.最好對所有值使用 TRY_CAST(),無論是否存在字符,并以可預測的方式處理空響應.

For this reason I don't think the logical check is of value here. Best to use TRY_CAST() on all values, regardless of the presence of characters and handle the null response in a predictable manner.

這篇關于SQL Server ISNUMERIC() 澄清的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Converting Every Child Tags in to a Single Column with multiple Delimiters -SQL Server (3)(將每個子標記轉換為具有多個分隔符的單列-SQL Server (3))
How can I create a view from more than one table?(如何從多個表創建視圖?)
Create calculated value based on calculated value inside previous row(根據前一行內的計算值創建計算值)
How do I stack the first two columns of a table into a single column, but also pair third column with the first column only?(如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?) - IT屋-程序員軟件開發技
Recursive t-sql query(遞歸 t-sql 查詢)
Convert Month Name to Date / Month Number (Combinations of Questions amp; Answers)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 国偷自产av一区二区三区 | 亚洲永久 | 久久极品 | 久久久久久久久91 | 久草在线视频中文 | 欧美精品一区二区三区在线播放 | 精品久久久久久国产 | 激情视频网站 | 久久久久一区 | 国产免费播放视频 | 亚洲欧洲视频 | 日韩一区二区av | 龙珠z国语版在线观看 | 免费国产视频 | 日韩在线xx| 国产在线视频一区二区董小宛性色 | 日韩久久久久久 | 日韩三级在线观看 | 国产精品成人在线播放 | 日韩激情在线 | 精品久久久久久久久久久久 | 亚洲精品区 | 欧美日韩在线一区二区三区 | 99精品国产一区二区三区 | 99国产精品视频免费观看一公开 | 国产精品视频久久久久 | 日本成人中文字幕在线观看 | 国产一区二区av | 日韩国产精品一区二区三区 | 亚洲视频在线一区 | 操操操操操 | 97成人免费| 久久99精品视频 | 在线成人av | www.日本国产 | 欧美一区两区 | 成人免费视频网站在线观看 | 99久久精品国产一区二区三区 | 一区二区影视 | 黄色片网站国产 | 精品久久99 |