【问题标题】:How to Compare null value with some value in SQL?如何将空值与 SQL 中的某个值进行比较?
【发布时间】:2023-01-05 05:50:43
【问题描述】:

我对如何比较获取值为 null 并在 if 条件下比较 sql 有疑问

这是我的数据 null 值 bcz 我在 custId 中没有数据,当我使用此查询时它是正确的 Select custId from myTable where Id=123 但如何将 null 与值进行比较?行中的一些时间值也显示两个条件都适用,这意味着一些可用的 custId 数据也在这种情况下更新 ..query 中的 custId,当它为真时

IF (Select custId from myTable where Id=@Id) != @custId 
BEGIN
    ...query
END

【问题讨论】:

  • “将空值与某个值进行比较”应该是什么意思?请澄清你的问题。值为空或不为空。您不能将 null 与其他任何东西“比较”。
  • 样本数据和期望的结果会有所帮助。
  • 您是否在寻找[NOT] DISTINCT FROM
  • @JonasMetzler 只是兄弟,前任。我的表中有 3 个条目,数据 ID 是 123,custId 就像 123 ,291 ,null 现在在我的条件下 Select custId from myTable where Id=3 所以我的数据是空的,所以我如何使用条件和它从某种意义上说,参数侧 custId 不为空,它的 int 值将变为 true,如果两者不同,则我想与差异进行比较,然后条件为真..那我该怎么办?
  • 你能使用这样的东西吗: IF (Select ISNULL(custId,-1) from myTable where Id=@Id) != ISNULL(@custId,-1) BEGIN ...query END

标签: sql


【解决方案1】:

也许这对你有用?这说明 custId 等式的两边都可能为空。您将希望使用一个不可能出现在您的 custId 数据中的值,因此使用负数,因为大多数 ID 都是正数。

如果存在 (选择 1个 从 我的表 在哪里 ID = @Id AND ISNULL(custId, -1) = ISNULL(@custId, -1)) 开始 ...询问 结尾;

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 2018-10-02
    • 2011-02-08
    • 1970-01-01
    • 2018-09-12
    • 2015-01-27
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    相关资源
    最近更新 更多