如何使用此子查询

时间:2016-06-06 15:38:58

标签: sql sql-server

我想查看此查询时间是否低于0

select *
from voorwerp
where (Select (((Cast(((DATEADD(dd, looptijd, datum)) - getdate()) as float) * 24.0)*60.0)*60.0) AS tijd from voorwerp) <= 0

我收到此错误:

  

子查询返回的值超过1。这是不允许的   子查询跟随=,!=,&lt;,&lt; =,&gt;,&gt; =或当子查询用作   表达。

2 个答案:

答案 0 :(得分:0)

您不需要子查询,以避免在可以使用CTE的地方使用函数。

试试这个:

;with CTE

as

(

SELECT
       --you need to specify a name for your column,

       CAST(DATEADD(dd, looptijd, datum) - GETDATE() AS FLOAT) as TIJD

FROM voorwerp
<= 0

)

Select 
         --you need to specify a name for your column
From CTE
WHERE TIJD <= 0

答案 1 :(得分:0)

要解决此问题,请重写SQL,如下所示:

SELECT v.*
FROM voorwerp v
WHERE (
      SELECT CAST(DATEADD(dd, looptijd, datum) - GETDATE() AS FLOAT) as tijd
      FROM voorwerp
      ) <= 0