在Sql server中,我正在尝试编写一个查询,如果值小于零,我希望显示“<0”,否则显示相同的值。为此,我写了这样一个简单的查询:我知道它提供了转换错误,但你能在这方面提供帮助吗?
declare @ret decimal = 0.25
select (case when @ret <0 then '< 0' else @ret end) as colum 发布于 2012-01-04 19:22:39
试试这个,注意关于小数的精度修饰符
declare @ret decimal(10,5) =0.25
select case when @ret < 0 THEN '< 0' ELSE cast(@ret as varchar) end as colum发布于 2012-01-04 19:21:35
SInce您没有为@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发布于 2012-01-04 19:37:07
在TSQL中使用CASE的基本示例
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;https://stackoverflow.com/questions/8725956
复制相似问题