检查字符串的最后一个字符不起作用

时间:2016-01-14 15:25:09

标签: tsql

我想检查用户是否提供了有效路径。当路径未以'/''\'结尾时,我希望通过此脚本添加路径。

 if ((RIGHT(@FilePath, 1) <> '\') or (RIGHT(@FilePath, 1) <> '/'))
        set @FilePath=@FilePath+'\'

为什么它不起作用,除非我从此声明中删除or (RIGHT(@FilePath, 1) <> '/')?我的意思是,它每次都会添加'\',因为它忽略了表达式,但它只是:

if ((RIGHT(@FilePath, 1) <> '\')

它运作正常。

1 个答案:

答案 0 :(得分:1)

当您有'somepath\'时,条件(RIGHT(@FilePath, 1) <> '/')为真。

当您有'somepath/'时,条件(RIGHT(@FilePath, 1) <> '\')为真。

因此,您将无法获得正确的结果。

试试这个:

if (RIGHT(@FilePath, 1) NOT IN ('\','/')) 
        set @FilePath=@FilePath+'\'