Sql 在where子句中使用select子句

Sql 在where子句中使用select子句,sql,firebird,firebird2.5,Sql,Firebird,Firebird2.5,我有一套8000多张唱片。我在where子句中有一个select子句,它可能会返回10条记录 进行了多少计算 这是否等同于搜索80000条10 x 8000条记录?或者它是640000008000 x 8000,因为它每次运行时都会再次搜索整个表以获取子集 下面是SQL代码。代码的目的是查找过去7天内已关闭的作业,并返回所有相关代码,无论这些代码是否打开 例如。如果作业S15195昨天关闭,那么它还应该返回X15195、SW15195、W15195C01 代码可以工作,但运行大约需要30分钟。然

我有一套8000多张唱片。我在where子句中有一个select子句,它可能会返回10条记录

进行了多少计算

这是否等同于搜索80000条10 x 8000条记录?或者它是640000008000 x 8000,因为它每次运行时都会再次搜索整个表以获取子集

下面是SQL代码。代码的目的是查找过去7天内已关闭的作业,并返回所有相关代码,无论这些代码是否打开

例如。如果作业S15195昨天关闭,那么它还应该返回X15195、SW15195、W15195C01

代码可以工作,但运行大约需要30分钟。然而,由于这将在一夜之间运行,并通过电子邮件发送,所以这应该不会是一个问题

SELECT 
JOBHEADER.ORDERNUMBER, 
JOBHEADER.ORDERSTATUS, 
JOBHEADER.ORDERDESCRIPTION, 
JOBHEADER.ORDERDATE, 
JOBHEADER.CUSTOMER, 
JOBHEADER.JOBACTUALCOSTS, 
JOBHEADER.JOBCLOSEDATE, 
JOBHEADER.INVOICEDNETTAMOUNT, 
JOBHEADER.SALESPERSON, 
JOBHEADER.ADDITIONALFIELD_15 AS "PROJECT MANAGER",
Case substring(ORDERNUMBER FROM 2 FOR 1)
  when '1' then substring(ORDERNUMBER FROM 2 for 5)
  when '2' then substring(ORDERNUMBER FROM 2 for 5)
  else substring(ORDERNUMBER from 3 for 5)
End As "PROJECT NUMBER"

FROM JOBHEADER 

WHERE 
Case substring(ORDERNUMBER FROM 2 FOR 1)
  when '1' then substring(ORDERNUMBER FROM 2 for 5)
  when '2' then substring(ORDERNUMBER FROM 2 for 5)
  else substring(ORDERNUMBER from 3 for 5)
End 
IN 
(SELECT 
Case substring(ORDERNUMBER FROM 2 FOR 1)
  when '1' then substring(ORDERNUMBER FROM 2 for 5)
  when '2' then substring(ORDERNUMBER FROM 2 for 5)
  else substring(ORDERNUMBER from 3 for 5)
End As "PROJECT NUMBER"
FROM JOBHEADER 
WHERE DateDiff(Day, JOBHEADER.JOBCLOSEDATE, Cast('NOW' as Date)) <7 
)


ORDER BY JOBHEADER.CUSTOMER

select子句中的select子句更快还是记录搜索量相同?

将in的用法更改为exists。你应该考虑改变你的数据模型。将信息编码为订单号之类的东西是个坏主意,特别是如果这些信息不便于查询和索引。顺便说一句:我不明白你的问题,你说的select子句中的select子句更快是什么意思?我认为select子句中的select子句是不可能的,这个问题是多余的。很抱歉造成混淆。请将中的用法更改为exists。你应该考虑改变你的数据模型。将信息编码为订单号之类的东西是个坏主意,特别是如果这些信息不便于查询和索引。顺便说一句:我不明白你的问题,你说的select子句中的select子句更快是什么意思?我认为select子句中的select子句是不可能的,这个问题是多余的。对不起,有什么困惑。