在SQL查询中,我想将数值转换为文本,其中最小编号为。的小数位数,例如,如果数字是2.50,那么我想输出为2.5;如果数字是3,那么我想输出为3;如果数字是18.75,我想输出为18.75等。SQL如何将数字转换为SQL中具有最小小数位数(动态小数位数)的文本
我该如何实现这一目标?
编辑1: 为了给出更多背景,我将2个数值分开,并希望文本中的结果具有最小的必需小数位数。
谢谢。
在SQL查询中,我想将数值转换为文本,其中最小编号为。的小数位数,例如,如果数字是2.50,那么我想输出为2.5;如果数字是3,那么我想输出为3;如果数字是18.75,我想输出为18.75等。SQL如何将数字转换为SQL中具有最小小数位数(动态小数位数)的文本
我该如何实现这一目标?
编辑1: 为了给出更多背景,我将2个数值分开,并希望文本中的结果具有最小的必需小数位数。
谢谢。
如果想获得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
这应该做的伎俩......
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, 杰森
SQL Server 2012中 – AllSolutions