处理 Sql 服务器字符串连接中的 NULL

2023-12-08

我有以下 SQL 查询

select s.comments + s.further_comments from dbo.samples s where id = 1234

但是,如果 s.comments 或 s.further_comments 为 NULL,则整个字符串将返回 NULL

如何将 NULL 值转换为空字符串或至少仅返回该字符串中的非 NULL 值?


您可以使用ISNULL or COALESCE为了这。

SELECT ISNULL(s.comments, '') + ISNULL(s.further_comments, '')
SELECT COALESCE(s.comments, '') + COALESCE(s.further_comments, '')

ISNULL

Replaces NULL with the specified replacement value.

COALESCE

Returns the first nonnull expression among its arguments.

请注意,有are 一些差异两种方法之间存在差异,但出于所有意图和目的,它们很可能不适用于您的情况。

  1. ISNULL(NULL, NULL) -- 是 int
  2. COALESCE(NULL, NULL) -- 将抛出错误
  3. COALESCE(CAST(NULL as int), NULL) -- 它有效并返回 int
  4. ISNULL 仅采用 2 个参数,而 COALESCE 则采用可变数量的参数
  5. COALESCE 基于 ANSI SQL 标准,而 ISNULL 是专有的 TSQL 函数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理 Sql 服务器字符串连接中的 NULL 的相关文章

  • SQL Server 2008 中超前滞后函数的替代

    我想将当前行与下一行中的值进行比较 SQL 有LEAD and LAG函数来获取下一个和上一个值 但我无法使用它们 因为我使用的是 SQL Server 2008 那么我该如何得到这个呢 我有带输出的表 Id ActId StatusId
  • 给定一个字符串,如何删除所有重复的连续字母?

    如何从字符串中删除两个连续的字母 例如 a str hii thherre 应该成为 hi there 我尝试这样做 a str join sorted set a str key a str index 但是 我得到 hi ter 是的
  • 如何在 Hibernate 中使用 SELECT 进行 INSERT

    我需要在休眠中实现以下请求 insert into my table max column values select max id from special table where 如何在休眠中使用注释来做到这一点 Special tab
  • 为什么这个触发器会失败?它说无效标识符

    CREATE MATERIALIZED VIEW ORDERS MV BUILD IMMEDIATE REFRESH COMPLETE ON DEMAND AS SELECT FROM ORDERS CREATE OR REPLACE TR
  • 如何从 python 中的字符串中删除 ANSI 转义序列

    这是包含我的字符串的片段 ls r n x1b 00m x1b 01 31mexamplefile zip x1b 00m r n x1b 01 31m 该字符串是从我执行的 SSH 命令返回的 我无法使用当前状态下的字符串 因为它包含 A
  • 保护级别在项目中更改 - 现在项目将无法构建

    启动了一个新的 SSIS 项目 忘记将默认保护级别设置为 不保存敏感 我们的标准 现在在项目进行到一半时进行了更改 在项目级别和每个包中 检查时 所有包都已不要保存敏感并且该项目是不要保存敏感 但是在尝试构建时 我得到 项目一致性检查失败
  • python 字符串操作

    我有一根绳子s带嵌套括号 s AX p gt q E p Ur 我想删除所有括号对之间的所有字符并存储在新字符串中 如下所示 new string AX E 我尝试这样做 p re compile re DOTALL new string
  • MySQL表按时间戳分区

    我已经对表进行了分区 由于内存不足错误 表太大 我已将其分区在时间戳列上 如下所示 CREATE TABLE test fname VARCHAR 50 NOT NULL lname VARCHAR 50 NOT NULL dob time
  • Python:文本文件中的占位符变量

    我有一个名为help txt将被读取并打印出内容 我需要该文件包含变量占位符 其中变量值将被替换 例如 I have 3 variables one two and three 如果这只是 python 文件中硬编码的字符串 我可以将其视为
  • 将多个子查询作为值插入

    假设我要插入一个有很多 fk 的表 只是为了在下面解释一下错误的说法 insert into mytable values somevalue somevalue select id from othertable1 where condi
  • 如何为多用户应用程序实现简单的锁定机制?

    我真的不想在这里重新发明井 所以我寻求在多用户数据库应用程序中实现简单 行 锁定机制的想法 假设我有一个名为Products其中当然有一个ID PK 还有一个rowversion列 到目前为止尚未使用 我只想允许one用户能够编辑特定行 当
  • 将具有重复值的数据插入 Postgresql

    我需要在 postgresql 中插入数据集 INSERT INTO table subject topics exams name of subject section topic subtopic VALUES Algebra Math
  • 将 XML 文件读取到已存在的数据库表中

    我正在尝试将 XML 文件读入已存在的数据库表中 问题是 XML 标签和数据库列的名称不同 尽管它们具有相同的数据类型 因此 我想将 XML 标签 翻译 到数据库列中 以便可以输入数据库 不过我不知道该怎么做 这是我到目前为止所做的 sta
  • 当我在 JDBC 应用程序中调用PreparedStatement.cancel() 时,它实际上会在 Oracle 数据库中杀死它吗?

    我有针对 Oracle 10g 数据库运行的 Java JDBC 应用程序 我设置了一个PreparedStatement来执行查询 然后调用ps executeQuery 来运行它 有时查询需要很长时间 我需要终止它 我有另一个线程访问该
  • 检查行中是否有单调递增的值

    我正在寻找一种方法来检查表中的值是否针对特定的行子集单调递增 该表包含列 id name meas date 和 value 对于具有相同名称的所有行 应按 meas date 对行进行排序 并且需要检查这些排序行的值列是否单调递增 因此
  • 带逗号和句点的 SQL Server 2005 货币格式

    有没有办法在 SQL Server 2005 中转换货币字段以对其进行格式化 例如 该字段包含 99966 00 我们希望以这种格式返回 99 966 00 convert varchar cast SalesProducts Price
  • 使用SQL显示组内最小计数和最大计数

    Goal 我正在寻找一种方法来计算等于组的最小值或最大值的项目数 我的物品每隔几天就会收到一次 并且每两周输入一次 我需要查看每个 EntryDate 的最小和最大接收日期 以及最小和最大的项目计数 在 MS Access 中使用 SQL
  • SQL Server 2005 命名实例端口问题

    我在一台服务器上有 4 个不同的 SQL Server 2005 命名实例 用于测试目的 服务器上没有默认实例 因为我最终需要允许跨防火墙与这些实例进行通信 所以我已将每个实例的端口设置为静态侦听服务器的所有 IP Edit TCP IP
  • 如何在行的列中插入当前日期

    如何将当前日期插入 MS SqlServer Mgm Studio 中 编辑数据 视图中的行列中 我想得到等价的值GetDate 函数调用 这是我希望能澄清问题的图片 您无法键入函数 因此请键入日期或以下解决方案之一 创建默认值GetDat
  • 如何为基于服务的数据库设置自动增量

    我在这里开始构建我的第一个本地数据库 基于服务的数据库 使用文本框将行写入基于服务的数据库 https stackoverflow com questions 39152801 write line to service based dat

随机推荐

  • Crystal Reports - 计数公式

    我正在 Crystal 中开发一份报告 我需要对具有几种不同状态的特定字段进行计数 例如 我的报告中有一个 StatusType 字段 其中包含的值是 In Process Rejected On Hold or Submitted 我希望
  • 如何检查是否给出了参数?

    Checks if an argument was specified if argv 1 strcpy Buff1 argv 1 else strcpy Buff1 default 如果我运行 program test 增益1 测试 如果
  • Epson epos sdk收据对齐问题

    我目前正在使用适用于 Android 的 epson ePOS SDK 我需要打印收据 菜单名称在同一行中左对齐 价格右对齐 但它无法正常工作 我的临时解决方案是添加一些提要行以使其价格正确对齐 是否可以使文本在同一行中左右对齐 以下附件
  • RecyclerView 中的 Admob 原生广告 [重复]

    这个问题在这里已经有答案了 我想在我的一个具有 recyclerview 的报价应用程序中实施 admob 原生广告 我正在学习 android 编程 并试图找到原生广告的教程 但没有任何好的教程可用于在 recyclerview 中实现原
  • Swift 无法通过委托调用协议方法

    我有两节课 一个类被命名为ViewController另一个类名为TabView 我的目标是调用一个函数changeTab 它位于 ViewController 的 TabView 类内部 不知怎的 我遇到了麻烦 因为每次我的代表nil 这
  • 在传递给 mysql_query 之前有效地转义 C 中的引号

    简而言之 我通常使用 sprintf 在 C 中构建 MySQL 查询 i e sprintf sqlcmd update foo set dog lab where description s some desc mysql query
  • 在 Vim 中缩进 Javascript - 函数中 Lambda 函数的问题

    我在 vim 中遇到 JavaScript 缩进问题 一切都很好 除了内联函数作为函数参数的缩进不起作用 这是一个只有 javascript 的问题 不涉及 html Example someFunc function if foo bar
  • Base64 编码 .Rda 文件

    All 我正在尝试弄清楚如何将 Rda 文件放入 Base64 编码中 以便将其传送到 API 或从 API 传送出来 我真的很苦恼如何做到这一点 这是我得到的 但我认为它偏离了目标 cuse lt read table http data
  • 设置TKinter标签的位置?

    我正在尝试制作一个程序 在窗口的左下角和右下角放置一个标签 我的代码如下 root Tk root geometry 1000x250 var StringVar label Label root textvariable var var
  • 使用 karate.forEach 和 karate.set 从 json 数组中提取值的索引

    我有以下 json id 1A 2B name rs mk 我想提取名称为 rs 或 mk 时的id值 不会出现重复的情况name值和大小id and name键将始终匹配 所以我创建了以下场景 我迭代了name使用 forEach 的数组
  • 解析 ruby​​ 中的字符串日期,例如“28-May-10”

    我尝试使用解析 Date parse 28 May 10 to s Returns 0010 5 28 距离现在还有 2000 年 我怎样才能让 ruby 正确解释两位数年份 谷歌上有很多字符串到日期的转换技巧 但大多数处理数字月份而不是
  • SerialPort 类和 DataReceived 事件...获取字节。使用 ReadLine 还是 ReadExisting?有什么例子吗?

    我想通过串行发送和接收字节 我的接收器应该异步获取字节 我写了下面的小例子 看起来可行 但它给我留下了一种不安的感觉 我真的应该使用 WriteLine ReadLine 吗 正如现在所写 是否有可能为每个字节调用事件处理程序 m port
  • cmake - 未定义的引用

    我是新来的cmake并且知道这个问题之前已经被问过 但仍然找不到我做错了什么 我有一个带有文件夹的外部库 include and lib The include文件夹包含所有标题 h 和 lib文件夹包含所有源 c files 在我的项目中
  • 错误:参数类型 double/string 等不符合预期类型“AnyObject”

    我看了一些 iOS 编程教程 并对 AnyObject 有疑问 桥接不起作用 我有以下代码 import Foundation class CalculatorBrain private var accumulator 0 0 var in
  • 在 64 位进程中加载​​ 32 位 dll [重复]

    这个问题在这里已经有答案了 我希望我的 C 应用程序有条件地运行本机方法 有条件地选择运行 dll 的 x86 或 x64 版本 每当我尝试加载 32 位 dll 时 都会收到以下错误 Unhandled Exception System
  • 将 mat 文件转换为 pandas 数据框

    我想转换这个文件到 pandas 数据框 import pandas as pd import scipy io mat scipy io loadmat cardio mat cardio df pd DataFrame mat 我收到此
  • 继承int的类中的位运算

    我继承了 int 因为我想实现一个简单的按位运算接口 由于 int 的不可变性 我必须使用整数成员函数 例如int and class Bitset int def setitem self index value if value sel
  • Azure Function ServiceBusReceivedMessage ApplicatonProperties 为空

    我正在创建一个作为 ServiceBus 触发器的 Azure 函数 FunctionName RetryRack public async Task Run ServiceBusTrigger RackIntegration topic
  • 如何从 HashMap 中删除重复值

    我不知道如何最好地描述我的问题 但就是这样 我试图从中删除相同的名称 值 HashMap
  • 处理 Sql 服务器字符串连接中的 NULL

    我有以下 SQL 查询 select s comments s further comments from dbo samples s where id 1234 但是 如果 s comments 或 s further comments