繁体   English   中英

SQL 子查询作为表达式

[英]SQL Subquery as expression

我有以下两个表:

Create Table #Claims (ClaimId int, FormType varchar(3), AdjustmentVersion int)

Create Table #Secondary (FeeId int, FeeName varchar(60))

我希望能够返回所有属于特定 FormType 和 AdjustmentVersion 的声明。

鉴于以下查询:

select * from #Claims where FormType = 'DEN' and AdjustmentVersion in (1,2,3,(select FeeId from #Secondary))

如何更正语法以同时匹配给定整数和子查询上的 AdjustmentVersion? 目前,我收到错误“子查询返回了多个结果”。

我尝试使用和或与 AdjustmentVersion 但最终忽略了 FormType = 'DEN'

您正在尝试将结果集传递到 IN 子句中。 你只能给它一个标量(例如你可以给它 TOP 1 行)。 应用此类条件的正确方法是在 WHERE 中添加EXISTS子句。 替代指南

如果您在阅读这些内容后仍需要一些指导,请告诉我。

您可以将值分成两组,文字和子查询:

select *
  from #Claims
  where FormType = 'DEN' and
    ( AdjustmentVersion in (1,2,3) or AdjustmentVersion in (select FeeId from #Secondary) );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM