SQL Server实现数字转字符保留几位有效位数

  MS SQL Server中如果要根据需要动态保留小数位数没有太好的函数,所以自己写了一个

  在数据库中创建标量值函数,如下

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER ON

  GO

  -- =============================================

  -- Author: sgxcn

  -- Create date: 2011/4/4

  -- Description:

  -- =============================================

  create FUNCTION [dbo].[makedot]

  (

  @var as varchar(50),

  @len as int

  )

  RETURNS varchar(50)

  AS

  BEGIN

  DECLARE @ResultVar as varchar(50);

  DECLARE @DitIndex as int;

  zzbjz.codeplex.com

  SELECT @ResultVar = @var; --cast(@var as varchar(50));

  SELECT @DitIndex = CharIndex('.', @ResultVar);

  if @DitIndex > 0

  BEGIN

  if @len < 1

  SET @len = -1;

  SELECT @ResultVar = SubString(@ResultVar, 1, @DitIndex + @len);

  END

  RETURN @ResultVar

  END

  GO

  调用方法

  select dbo.makedot(cast(1234.4546456 as varchar(50)), 2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server中,将字符转换数字可以使用几种方法。首先,可以使用CAST函数将字符转换为DECIMAL类型,如所示。例如,可以使用以下语句将字符串'6.0'转换为DECIMAL(6, 2)类型的数字:CAST('6.0' AS DECIMAL(6, 2)),结果为6.00。 另一种方法是使用CONVERT函数来执行字符串到数字转换。可以使用以下语句将字符串'6.0'转换为DECIMAL(6, 2)类型的数字:CONVERT(DECIMAL(6, 2), '6.0'),结果同样为6.00。 如果字符串可能包含空值或空字符串,可以使用ISNULL函数来处理。然而,如果将空字符串直接传递给ISNULL函数进行转换,可能会遇到错误。这是因为ISNULL函数对空字符串的处理方式与CAST和CONVERT函数不同。要解决这个问题,可以先使用CASE函数将空字符转换为0,然后再使用CAST或CONVERT函数进行进一步的转换,如和所示。 综上所述,要在SQL Server中将字符转换数字,您可以使用CAST、CONVERT和CASE函数的组合来实现所需的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SQLserver 字符数字问题](https://blog.csdn.net/weixin_39823527/article/details/90022608)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [sqlserver 字符串类型转换小数或者整数类型](https://blog.csdn.net/Pei_hua100/article/details/125486924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值