【发布时间】:2017-02-28 22:15:01
【问题描述】:
我有一个 sql 查询,如果在查询执行后没有结果集,我想将值返回为“NULL”。我已经尝试过 ISNULL 属性,但是它会产生错误,
我的查询是:
SELECT ISNULL((SELECT TOP (100) PERCENT a.ReportDate, a.Scripcode, a.ISIN, a.Scripname, a.AccountNo, a.ClientLongName, a.GroupName, a.Event, a.TradedQty, a.UnreconQty, a.ExDateQty, a.RecDateQty, a.Diff, a.Rate, a.Ratio, a.TotalValue, a.Shares, a.StartDate, a.ExDate, a.RecordDate, a.PayDate, a.AgmDate, a.NSecName, a.NSecNo, a.Remark, b.GRUL_PROX_GRP_ID, b.GRUL_GROUPNO, b.CUSTOMERNO, b.GRUL_SHORTNAME, b.GRUP_SHORTCODE, b.CONF_TYP, b.SWIFT, b.FAX, b.COURIER, b.EMAIL, b.Account_Group, b.Excel_Word, b.Password, b.Sub_Account_Flag
FROM dbo.CRS_Entitlement_MasterDate AS a
INNER JOIN dbo.CRS_Entitlement_EntitlementComn AS b
ON a.AccountNo = b.CUSTOMERNO
WHERE (b.Account_Group = 'A')
AND (b.Excel_Word = 'E')
AND (b.SWIFT <> 'v')
AND (b.CONF_TYP <> 'N/A')
AND (b.FAX = 'v')
OR (b.Account_Group = 'A')
AND (b.Excel_Word = 'E')
AND (b.SWIFT <> 'v')
AND (b.CONF_TYP <> 'N/A')
AND (b.COURIER = 'v')
OR (b.Account_Group = 'A')
AND (b.Excel_Word = 'E')
AND (b.SWIFT <> 'v')
AND (b.CONF_TYP <> 'N/A')
AND (b.EMAIL = 'v')
ORDER BY a.AccountNo), 0) AS Expr1
请帮我解决这个问题,在此先感谢!!!
【问题讨论】:
-
给我们涉及的表格脚本和示例数据,我们很乐意提供帮助!
-
ISNULL 仅适用于单个列或表达式,而不适用于整个结果集。这就是导致您的错误的原因。
-
@squillman 也一样,
ISNULL不能按照 op 想要的方式工作 -
查询返回数据时要返回什么?
-
顺便说一句,请检查您在
WHERE条件中使用AND和OR的方式。我几乎可以肯定你弄错了
标签: sql-server vb.net