SQL:错误,到达了表达式处事限定?
发布时间:2021-01-16 18:56:41 所属栏目:编程 来源:网络整理
导读:“内部错误:已到达表达式处事限定.请在查询中查找也许伟大的表达式,并实行简化它们.” 有没有人见过这个,找到了一个好的办理要领? 我想法办理了这个题目,首要是将我的SQL查询分成两部门,然后将第一个SQL select查询写入姑且表,第二部门,一个新的SQL select
“内部错误:已到达表达式处事限定.请在查询中查找也许伟大的表达式,并实行简化它们.” 有没有人见过这个,找到了一个好的办理要领? 我想法办理了这个题目,首要是将我的SQL查询分成两部门,然后将第一个SQL select查询写入姑且表,第二部门,一个新的SQL select语句从姑且表中选择并行使了许多CROSS APPLY操纵符来计较级联计较列. 这是第二部门看起来怎样但我正在行使更多Cross Applys来天生存较的新列的示例: Select * from #tempTable cross apply ( select HmmLowestSalePrice = round(((OurSellingPrice + 1.5) / 0.95) - (CompetitorsLowestSalePrice) + 0.08,2) ) as HmmLowestSalePrice cross apply ( select checkLowestSP = case when adjust = 'No Room' then 'No Room' when OrginalTestSalePrice >= CompetitorsLowestSalePrice then 'Minus' when OrginalTeslSalePrice < CompetitorsLowestSalePrice then 'Ok' end ) as checkLowestSP cross apply ( select AdjustFinalNewTestSP = case when FinalNewTestShipping < 0 Then NewTestSalePrice - (FinalNewTestShipping) when FinalNewTestShipping >= 0 Then NewTestSalePrice end ) as AdjustFinalNewTestSP cross apply ( select CheckFinalSalePriceWithWP = case when round(NewAdminSalePrice,2) >= round(wholePrice,2) then 'Ok' when round(NewAdminSalePrice,2) < round(wholePrice,2) then 'Check' end ) as CheckFinalPriceWithWP DROP TABLE #tempTable 我的方针是将其放入sql陈诉中,假如只有1个用户,它将正常事变,由于#tempTable将在统一执行中建设并删除,而且功效会正确表现在陈诉中.可是未来假若有并发用户我会担忧他们会写同样的#tempTable会影响功效吗? 我已经看过将它放入存储进程但如故获得上面的错误动静. 办理要领呈现此题目的缘故起因是SQL Server限定可以包括在查询的单个表达式中的标识符和常量的数目.限定是65,535.在SQL Server扩展全部引用的标识符和常量之后,将执行标识符和常量数目的测试.在SQL Server 2005及更高版本中,查询在内部举办类型化和简化.这包罗*(星号),计较列等.要办理此题目,请重写查询.在查询中的最大表达式中引用较少的标识符和常量.您必需确保查询的每个表达式中的标识符和常量的数目不高出限定.为此,您也许必需将查询解析为多个单个查询.然后,建设姑且中间功效. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读