空白而不是零

2024-03-28

Duration = isnull(FunctionA(DateA,DateB),'')

上面的函数计算天数,如果 day 为空,则显示 值 0 而不是空白值

如何更改上面的代码,使其显示空白而不是 0 值 null?


如果您的函数返回一个整数,则结果来自isnull也将是一个整数。在这种情况下返回值为null您将隐式转换为 '' 的整数,结果为 0。

尝试这个:

declare @xx int
select isnull(@xx,'')

Result:

-----------
0

如果您首先将函数的返回值转换为varchar.

declare @xx int
select isnull(cast(@xx as varchar(10)),'')

Result:

----------
                                                                                .

如果你的函数返回0代替null您可以使用nullif在转换为之前获取空值varchar.

declare @xx int = 0
select isnull(cast(nullif(@xx, 0) as varchar(10)),'')

Summary:

你需要这个:

Duration = isnull(cast(FunctionA(DateA,DateB) as varchar(10)),'')

or this

Duration = isnull(cast(nullif(FunctionA(DateA,DateB), 0) as varchar(10)),'')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

空白而不是零 的相关文章

  • 消息传递功能创建 Sql 查询和数据库视图

    鉴于以下情况 我需要能够获取给定用户参与的所有线程的列表 首先按最新消息排序 仅显示最新消息 每个线程 1 条消息 这是上面的 SQL 查询 SELECT Message MessageId Message CreateDate Messa
  • TSQL动态确定SP/Function的参数列表

    我想将通用日志记录片段写入存储过程集合中 我写这篇文章是为了对我们的前端用户体验进行定量测量 因为我知道前端软件使用了哪些 SP 以及它们的使用方式 我想在开始性能调优之前使用它来收集基线 然后显示调优的结果 我可以动态地从 PROCID
  • SQL Server 2008 排序规则冲突 - 如何解决?

    为了简化 POC 我使用字符类型列进行以下查询 select AH NAME1 from GGIMAIN SYSADM BW AUFTR KOPF union select AH NAME1 from GGI2014 SYSADM BW A
  • SQL查询;水平到垂直

    我遇到了涉及将水平行转换为垂直行的 SQL 查询 SQL Server 以下是我的数据 No Flag 1 Flag 2 Flag 3 A 1 2 3 B 4 1 6 转换后 该表应为 No FlagsName Flag value A F
  • SQL Server在查询执行后不释放内存

    我想我在这里有一个很多人可能遇到过的基本问题 当我在 SQL Server 中运行查询时 它将在内存中加载查询执行所需的所有数据 例如 如果存在联接 那么它将从这两个表加载必要的数据 但是当查询完成执行内存时SQL Server 消耗的数据
  • 将 DD-Mon-YYYY 转换为 DD/MM/YYYY

    我需要转换 dt of birth varchar 15 其格式为DD Mon YYYY to DD MM YYYY dt of birth在不同的表中指定 并且必须完成转换并将其存储在具有相同列名的另一个表中dt of birth Her
  • SSMS 对象资源管理器 - 连接到 Azure DB 时选择丢失的前 N ​​行

    我刚刚将 SSMS 升级到 2008 R2 我缺少从表中选择前 1000 行的选项 如下所示 我的看起来像这样 我知道如何更改显示的行数 但根本不存在这些选项 几年前我看到有人为此提交了一个错误 但没有解决方法 我不知道该怎么办 有任何想法
  • 在SQL Server中,not(columnName='value')和columnName<>'value'之间有什么区别吗?

    在 SQL Server 的 where 子句中 无论您编写代码有什么区别not columnName value or columnName lt gt value 我正在考虑性能方面的问题 有人告诉我 当使用 Not 时 它可能不会使用
  • 良好的安全实践和自动身份范围管理是否相互排斥?

    我正在尝试使用自动身份范围管理 http msdn microsoft com en us library ms152543 aspx sectionToggle1 但是 确保我的用户可以在具有标识列的表中插入记录的唯一方法是使它们db o
  • 复制行并自动递增非身份键 ID 列的 INSERT INTO 语句

    给定一个包含三列的表 ID 主键 非自动递增 GroupID 一些价值 我正在尝试编写一个 SQL INSERT INTO 语句 该语句会将具有一个 GroupID 的每一行复制到一个新的 GroupID 中 起始表示例 ID GroupI
  • SQL Server 代理服务的凭据无效

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 我正在尝试以管理员身份在本地计算机上安装 SQL Server 2008 开发服务器 在安装过程中我收到此错误 知道如何解决它
  • 在 CASE 语句中使用 CAST 时出现数据转换错误

    运行以下命令时出现错误 将数据类型 nvarchar 转换为 float 时出错 declare completeCommand nvarchar max x paramVal nvarchar 100 paramName nvarchar
  • 在 SQL where 子句中使用带有 IsDate 的 case 语句

    我正在尝试清理以下代码中的 where 子句语句 SELECT CONVERT datetime UTC Time Stamp 127 AS TimeStamp FROM Table WHERE CASE WHEN ISDATE UTC T
  • 基于现有数据库表创建@TableVariable?

    我想在存储过程中使用表变量 但这是一个问题 我的表非常大 声明表变量也需要很长的代码来编写和调试 请告诉我一些快速声明表变量的方法 是否可以基于现有表创建表变量 或者请分享任何创建用于创建表变量的代码的提示 Thanks 右键单击表格 选择
  • 将数据表传递给存储过程

    我有一个用 C 创建的数据表 using DataTable dt new DataTable dt Columns Add MetricId typeof int dt Columns Add Descr typeof string dt
  • DATEADD(day, -7, GETDATE()) - 是否考虑了时间?

    我正在通过 Amazon Redshift 在 Aginity 中编写 SQL 查询来提取过去 7 天的数据 这Date我调用的列是变量类型 DATE 输出示例如下 5 30 2017 0 00 当我调用下面的函数时 运行此查询在一天中的什
  • SQL Proc 从 varchar 到 int 的“转换失败”。为什么要转换?

    我的问题是 为什么它从 varchar 转换为 int 我不确定它想做什么 CREATE PROCEDURE myTestProcedure TransId VARCHAR 15 AS BEGIN DECLARE Result VARCHA
  • 循环遍历服务器上的数据库,并更新数据

    我有一台带有多个数据库的服务器 我需要循环访问这些数据库并更改每个数据库中的一个记录 一个表中的值 如何才能做到这一点 EXEC sp MSForEachDB Use UPDATE dbo MyTable SET MyValue 999
  • 为列名创建动态选择获取值 - 在 SQL Server 中

    请帮助我创建一个选择 SQL 语句 其中的结果列名称是从原始表中的列值获取的 表名是Device Part 用户可以输入很多DeviceCode其中有许多动态PartTypeName PartTypeName 值为PartInfo 这可能有
  • 单个 sql 查询可以处理 sql server 中的 null 或值日期范围

    使用 SQL Server 2008 我有一个存储过程 其中开始日期和结束日期作为日期范围的输入参数 寻找一个singlesql 查询 其中在 where 子句中有一个开始日期和结束日期 可以处理日期均为空或都有值的两种情况 我不想使用 I

随机推荐