在Sql服務器中,我試圖寫一個查詢,如果值小於零,我想顯示「< 0」,其他明智的相同的值。爲此,我寫了一個簡單的查詢,如下所示: 我知道它正在給出轉換錯誤,但是你能否幫助解決這個問題。在sql server中的情況條件?對於小數數據類型?
declare @ret decimal = 0.25
select (case when @ret <0 then '< 0' else @ret end) as colum
在Sql服務器中,我試圖寫一個查詢,如果值小於零,我想顯示「< 0」,其他明智的相同的值。爲此,我寫了一個簡單的查詢,如下所示: 我知道它正在給出轉換錯誤,但是你能否幫助解決這個問題。在sql server中的情況條件?對於小數數據類型?
declare @ret decimal = 0.25
select (case when @ret <0 then '< 0' else @ret end) as colum
試試這個,使用當關於十進制
declare @ret decimal(10,5) =0.25
select case when @ret < 0 THEN '< 0' ELSE cast(@ret as varchar) end as colum
,因爲你沒有指定的精度和規模爲@ret
變量,規模將是0
默認(參見MSDN:The default scale is 0
),只需指定規模,同時聲明變量:
DECLARE @ret DECIMAL(10,2) = 0.25
SELECT
CASE
WHEN @ret < 0 THEN '< 0'
ELSE CAST(@ret AS VARCHAR)
END
它給埃羅SLL,謝謝你的答覆 – 2012-01-04 11:28:30
小的修正作出 – 2012-01-04 11:30:21
它只但沒有顯示「0」,「<0」 @Sll – 2012-01-04 11:36:13
基本的例子精密調節劑要注意10 TSQL
:
declare @iDec decimal(10,5) = 10.5
SELECT ProductNumber,
Category =
CASE ProductLine
WHEN @iDec > 1 THEN 'Greater Than 1'
WHEN @iDec < 1 THEN 'Less Than 1'
ELSE 'Equal to 1'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
感謝您的回覆Oleg Dok,但它顯示0.2500 – 2012-01-04 11:28:01
是的,因爲它> 0,試試這與-0.25,或更改類型爲十進制(10,2)作爲一個選項 – 2012-01-04 11:29:41
對不起,我更改我的查詢,請檢查它,實際上在準備問題時,我錯誤地鍵入請找到我的edied問題 – 2012-01-04 11:32:04