[英]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.