Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 大小写表达式中的舍入_Sql_Sql Server_Tsql_Select_Rounding - Fatal编程技术网

Sql 大小写表达式中的舍入

Sql 大小写表达式中的舍入,sql,sql-server,tsql,select,rounding,Sql,Sql Server,Tsql,Select,Rounding,我有一个案例说明,我想对最终结果进行四舍五入。该列是importstring。21.16800000000000. 我想把它四舍五入到2。我尝试使用Round(21.1680000000,2)。这能做到吗 SELECT ITMMASTER.ITMREF_0, YPRIMAT.ITMREF_0, BASPRI_0, ITMMASTER.TSICOD_6, ITMMASTER.TCLCOD_0, (BASP

我有一个案例说明,我想对最终结果进行四舍五入。该列是importstring。21.16800000000000. 我想把它四舍五入到2。我尝试使用Round(21.1680000000,2)。这能做到吗

 SELECT   ITMMASTER.ITMREF_0,
          YPRIMAT.ITMREF_0,
          BASPRI_0,
          ITMMASTER.TSICOD_6,
           ITMMASTER.TCLCOD_0,
  (BASPRI_0*2.205+CASE
                 WHEN ITMMASTER.TCLCOD_0 = '32221'  --Multipying 2.205 times 
  1.25 (packaging per pound)
                       THEN '2.75625'
                 WHEN ITMMASTER.TCLCOD_0 = '32224' --Multipying 2.205 times 
  0.75 (packaging per pound)
                       THEN '1.65375'
                 WHEN ITMMASTER.TCLCOD_0 = '13221' --
                       THEN '2.75625'
                 WHEN ITMMASTER.TCLCOD_0 = '13241'
                       THEN '1.65375'
                 WHEN ITMMASTER.TCLCOD_0 = '36221'
                       THEN '6.7473'
                 WHEN ITMMASTER.TCLCOD_0 ='36224'
                       THEN '5.6448'
                 WHEN ITMMASTER.TCLCOD_0 = '41211'
                       THEN '1'
                 END) AS Importstring

  FROM LIVE.YPRIMAT
  INNER JOIN LIVE.ITMMASTER  ON YPRIMAT.ITMREF_0 = ITMMASTER.ITMREF_0

可以使用
round()将表达式包围起来

或者,可能更好的方法是,您可以将(
cast()
转换为具有两位小数的小数:

cast(baspri_0_2 * 2.205 + case .. end as decimal(30, 2)) as ImportString

为什么要将字符串相乘,例如
'1'
?使用数字,例如
1
,不是更有意义吗?什么是“案例状态”?TSQL确实有一个表达式。
cast(baspri_0_2 * 2.205 + case .. end as decimal(30, 2)) as ImportString