在SQL查询中,我想将数值转换为最小值为no的文本。小数位,例如,如果数字是2.50,那么我想输出为2.5;如果number是3,那么我想输出为3;如果数字是18.75,我希望输出为18.75等。
我怎样才能做到这一点?
编辑1: 为了给出更多背景,我将2个数值除,并希望文本中的结果具有最小必需小数位。
感谢。
答案 0 :(得分:2)
在SQL 2012及更高版本中,您可以编写
SELECT FORMAT(15.0/4.0 , '#.########' )
它使用FORMAT函数,该函数使用.NET String.Format功能。
答案 1 :(得分:0)
如果要为除法值获得2位小数,请使用此
Select case when right(cast ( x/y as decimal(18,2)),1) = 0
then left (cast ( x/y as decimal(18,2)),3)
else cast ( x/y as decimal(18,2)) end ReqOutput
答案 2 :(得分:0)
这应该可以解决问题......
IF OBJECT_ID('tempdb..#TestData', 'U') IS NOT NULL
DROP TABLE #TestData;
CREATE TABLE #TestData (
SomeNumber DECIMAL(9,7) NOT NULL
);
INSERT #TestData (SomeNumber) VALUES
(1.2345670), (1), (99.00100), (5.55);
SELECT
td.SomeNumber,
REVERSE(STUFF(rcv.RevCastVarchar, 1, PATINDEX('%[^0.]%', rcv.RevCastVarchar) - 1, ''))
FROM
#TestData td
CROSS APPLY ( VALUES (REVERSE(CAST(td.SomeNumber AS VARCHAR(10)))) ) rcv (RevCastVarchar);
HTH, 杰森