簡體   English   中英

SQL查詢-將數據類型varchar轉換為數值

[英]SQL Query - Converting data type varchar to numeric

我在SQL查詢中轉換定價時遇到問題:

CASE CAST(R.Price AS decimal(10,2)) 
   WHEN 'NULL' 
      THEN '0'
END AS 'PricePoint',

不幸的是,它引發了這個錯誤:

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

謝謝您的幫助。

您正在將NULL與Varchar進行比較,因此它給出了錯誤。

使用以下查詢

CASE CAST(R.Price AS decimal(10,2)) WHEN NULL THEN '0'END AS 'PricePoint',

如果這是針對SQL Server的 ,則必須使用以下代碼來使用IS NULL檢查(而不是“常規”相等運算符):

CASE 
   WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
      THEN '0'
END AS 'PricePoint',

另外:如果要返回數字0 ,則應再次忘記該值周圍的單引號-將其放在單引號中將返回字符串值(而不是int ):

CASE 
   WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
      THEN 0
END AS 'PricePoint',

更新:如果您想為任何非NULL返回正常價格,請在您的CASE添加一個ELSE子句:

CASE 
   WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
      THEN 0
      ELSE CAST(R.Price AS decimal(10, 2)) 
END AS 'PricePoint',

暫無
暫無

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

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