错误无法解决 [英] error can't be solved
本文介绍了错误无法解决的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
SELECT A.TA_RTID,A.TA_VEHICLE,A.TA_BOARDING,B.RM_RONO FROM M_TRANSPORTALLOCATION A,M_ROUTE B
WHERE ((@ TA_RTID = ' ') OR (A.TA_RTID =@TA_RTID)) AND
((@ TA_VEHICLE = ' ') OR (rtrim(substring(A.TA_VEHICLE, 1 ,charindex(' (',A.TA_VEHICLE)-1))))= @ TA_VEHICLE)) AND
((@ TA_BOARDING = ' ')或(A.TA_BOARDING=@TA_BOARDING)) AND
(A.TA_RTID = B.RM_ROID)
SET NOCOUNT OFF
END
错误
--------
指定的非布尔类型的表达式预期条件的上下文,接近')'。
但是
选择 rtrim(substring(A.TA_VEHICLE, 1 ,charindex(' (',A.TA_VEHICLE)-1))来自 M_TRANSPORTALLOCATION A
没有给出错误
解决方案
支架太多了!
请看这一点:
(rtrim(substring( A.TA_VEHICLE,1,charindex('(',A.TA_VEHICLE)-1))))= @ TA_VEHICLE))重新整理它,这样你就可以看到:
(rtrim
(substring
(A.TA_VEHICLE,1,charindex
('(',A.TA_VEHICLE)-1
)
)
)
)= @ TA_VEHICLE))
我清理了括号。如果正确的话请试试。
SELECT A. TA_RTID,A.TA_VEHICLE,A.TA_BOARDING,B.RM_RONO FROM M_TRANSPORTALLOCATION A,M_ROUTE B
WHERE ((@ TA_RTID = ' ')或(A.TA_RTID=@TA_RTID)) AND
((@ TA_VEHICLE = ' ') OR
(rtrim(substring(A.TA_VEHICLE, 1 ,charindex(' (',A.TA_VEHICLE) - 1)))= @ TA_VEHICLE)
AND
((@ TA_BOARDING = ' ') OR (A.TA_BOARDING=@TA_BOARDING)) AND
(A.TA_RTID = B.RM_ROID)
SET NOCOUNT 关闭跨度>
SELECT A.TA_RTID,A.TA_VEHICLE,A.TA_BOARDING,B.RM_RONO FROM M_TRANSPORTALLOCATION A,M_ROUTE B
WHERE ((@TA_RTID='')OR(A.TA_RTID=@TA_RTID))AND
((@TA_VEHICLE='')OR(rtrim(substring(A.TA_VEHICLE,1, charindex('(', A.TA_VEHICLE)-1))))=@TA_VEHICLE)) AND
((@TA_BOARDING='')OR(A.TA_BOARDING=@TA_BOARDING))AND
(A.TA_RTID=B.RM_ROID)
SET NOCOUNT OFF
END
error
--------
An expression of non-boolean type specified in a context where a condition is expected, near ')'.
but
select rtrim(substring(A.TA_VEHICLE,1, charindex('(', A.TA_VEHICLE)-1)) from M_TRANSPORTALLOCATION A
not giving error
解决方案
Too many brackets!
Look at this bit:
(rtrim(substring(A.TA_VEHICLE,1, charindex('(', A.TA_VEHICLE)-1))))=@TA_VEHICLE))Re organise it so you can see:
(rtrim (substring (A.TA_VEHICLE,1, charindex ('(', A.TA_VEHICLE)-1 ) ) ) )=@TA_VEHICLE))
I have cleaned up the brackets. Not if its correct give it a try.
SELECT A.TA_RTID,A.TA_VEHICLE,A.TA_BOARDING,B.RM_RONO FROM M_TRANSPORTALLOCATION A,M_ROUTE B WHERE ((@TA_RTID='')OR(A.TA_RTID=@TA_RTID))AND ((@TA_VEHICLE='')OR (rtrim(substring(A.TA_VEHICLE,1, charindex('(', A.TA_VEHICLE)-1)))=@TA_VEHICLE) AND ((@TA_BOARDING='')OR(A.TA_BOARDING=@TA_BOARDING))AND (A.TA_RTID=B.RM_ROID) SET NOCOUNT OFF
这篇关于错误无法解决的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文