错误无法解决 [英] error can't be solved

查看:83
本文介绍了错误无法解决的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆