2017-04-27 30 views
0

我是新来的标量函数之类的,所以请解释一下,如果我做了一件可怕的错误(这是一个很好的机会)。我试图比较两个不同标量函数的结果,这两个函数都返回INT,但不管语法如何,我都会收到错误信息。比较两个标量函数的结果

SELECT dbo.function1(@param1) = SELECT dbo.function2(@param2, @param3, @param4)

理想的情况下,如果可能的话,因为@param1从大的查询的早期部分采取了这种将运行在一个大的查询的WHERE子句的一部分。

+0

这只是取决于你的功能逻辑。我认为没有必要进行比较。 –

+0

功能取决于您的代码构造。不依赖于任何人。 –

回答

2

你不需要第二个'选择'。如果你正在寻找比较查询中的数字/整数,你总是可以使用一个case语句。

+0

你能解释为什么选择不需要?我刚刚尝试过,但仍然失败。另外,不完全确定我会如何使用case语句来比较它们? – Trent

+0

因为已经有'选择'了。每个查询只需要一个“选择”。 – luly

+0

关于案件陈述; **当dbo.function1(@ param1)= dbo.function2(@ param2,@ param3,@ param4)then ... else ... end **时。在这里看到更多https://docs.microsoft.com/en-us/sql/t-sql/language-elements/case-transact-sql – luly