簡體   English   中英

如何在 SQL Server 中將 nvarchar 轉換為數字

[英]How to convert nvarchar to numeric in SQL Server

如何將nvarchar轉換為numeric

我收到此錯誤:

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

這是我的查詢

SELECT 
    strIpay88Amt, 
    CONVERT(NUMERIC(18, 2), strIpay88Amt) AS iPay
FROM
    tblCurrTrxMaster 

假設 strIpay88Amt 列中有字符串值。 您可以使用以下內容僅轉換數值。

select cast(strIpay88Amt as numeric) from tblCurrTrxMaster 
where ISNUMERIC(strIpay88Amt) = 1

然后獲取字符串值。

select strIpay88Amt from tblCurrTrxMaster where ISNUMERIC(strIpay88Amt) = 0

嘗試強制轉換語法:

 SELECT strIpay88Amt, CAST(strIpay88Amt AS NUMERIC) AS iPay FROM tblCurrTrxMaster 

您的表格中必須有一些不是有效數字的條目,因此您的轉換失敗 - 這是理所當然的。

所以為了找到這些條目,你可以試試這個:

SELECT 
    strIpay88Amt, 
    TRY_CONVERT(NUMERIC(18, 2), strIpay88Amt) AS iPay
FROM
    dbo.tblCurrTrxMaster 
WHERE
    TRY_CONVERT(NUMERIC(18, 2), strIpay88Amt) IS NULL

這將使用TRY_CONVERT函數來嘗試轉換 - 並且使用此WHERE子句,您將只會取回所有無法轉換為有效NUMERIC條目。

雖然NULL會正確地“轉換”為數字,但例如空字符串'' )已經會導致錯誤......

暫無
暫無

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

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