【问题标题】:Filtering out NULLs in a query过滤掉查询中的 NULL
【发布时间】:2014-03-31 12:05:37
【问题描述】:

以下子查询返回一些空值和一些值。我想选择不为空的行,我该怎么做?

        ,(select distinct LEDGERTABLE.ACCOUNTNAME
    FROM ledgertrans 
    Where Salesline.SalesID = #tempCMs.SALESID and salesline.DIMENSION = 
        (Select top 1 Ledgertrans.Dimension
        From LedgerTrans
            Where Ledgertrans.Voucher = #tempCms.InvoiceID and LedgerTrans.AccountNum = Ledgertable.Accountnum)
 ) As 'Account'

谢谢

【问题讨论】:

    标签: sql null filtering


    【解决方案1】:

    用IS NOT NULL过滤NULLs

    试试这个:

    (select distinct LEDGERTABLE.ACCOUNTNAME
        FROM ledgertrans 
        Where Salesline.SalesID = #tempCMs.SALESID and salesline.DIMENSION = 
            (Select top 1 Ledgertrans.Dimension
            From LedgerTrans
                Where Ledgertrans.Voucher = #tempCms.InvoiceID 
                and LedgerTrans.AccountNum = Ledgertable.Accountnum
                AND LEDGERTABLE.ACCOUNTNAME IS NOT NULL)
     ) As 'Account'
    

    NULL 值没有使用相等性测试 (!= NULL) 过滤,因为 NULL 值未知,因此无法确定相等性。

    【讨论】:

      【解决方案2】:

      将AND LEDGERTABLE.ACCOUNTNAME IS NOT NULL 添加到您的WHERE 子句中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多