我使用这个条件以便比较字符串并消除最后2个字符
right(tr.item,2) = '%bx' then left(tr.item,len(tr.item)-2)
但我想要多个条件并消除最后2个字符。
我试图执行此声明
right(tr.item,2) like ('%bx','%cx','%ax') then left(tr.item,len(tr.item)-2)
但我收到了错误
Msg 102,Level 15,State 1,Line 11
附近的语法不正确
','。
请建议实现这一目标的最佳方式。
答案 0 :(得分:0)
试试这个..你需要一个OR
((right(tr.item,2) like ('%bx'))
or
(right(tr.item,2) like ('%cx'))
or
(right(tr.item,2) like ('%ax')))
then left(tr.item,len(tr.item)-2)
答案 1 :(得分:0)
我想你想要这个逻辑
(case when right(tr.item, 2) in ('bx', 'cx', 'ax')
then left(tr.item, len(tr.item) - 2)
else tr.item
end)
如果您使用like
,则不需要通配符(ala right()
)。 SQL中的条件逻辑是通过case
表达式提供的。
答案 2 :(得分:0)
由于您使用RIGHT功能,我认为您不需要'%'。所以你可以这样做: 对(tr.item,2)IN(' bx',' cx',' ax')