簡體   English   中英

如何將nvarchar轉換為十進制?

[英]how to cast nvarchar to decimal?

我知道如何將nvarchar轉換為十進制(18,4)強制轉換方法。 我的表格行數為80000。我的查詢在下面完美運行...


SELECT  top 80000 id, Cast(MH as decimal(18,4)) as MH 
FROM TaskRelations WHERE MH is not null

但;

但下面選擇查詢不起作用! 如果寫在下面:


SELECT   id, Cast(MH as decimal(18,4)) as MH 
FROM TaskRelations WHERE MH is not null

錯誤:將數據類型nvarchar轉換為數字時出錯。

您的MH字段中的第80,000行之后有非數字數據。

您可以使用ISNUMERIC函數,但是它臭名昭著的錯誤,將根據您的數據為您帶來大量誤報。

問題通常是,實際上MH列中的某些nvarchar不能轉換為十進制。

您可以嘗試以視覺方式檢查數據,但是由於記錄數超過80k,這可能不可行。 嘗試以其他方式檢查數據-您可以使用isNumeric ,或在列的前(或后)三個字符處使用group by來查找錯誤的數據。

基本上,您收到的錯誤是由於以下事實造成的:超過最高80000條記錄的某些記錄無法轉換為十進制。 檢查所有> 80000的行上的數據

嘗試這個:

SELECT   max(MH) as max_mh, min(mh) as min_mh
FROM TaskRelations 
WHERE MH is not null

非數字值應小於或大於數字值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM