我有一个包含以下字符串的数据:选择包含数字仅排
Hello | World | 40
Hi | World | 24244
One | Two | 27
This | That | 84f
Yes | No | 456gf
The | Test|54
现在我需要编写查询只让那些行,其中到底唯一号码,过滤那些在他们身后的字符。以上设置的结果:
Hello | World | 40
Hi | World | 24244
One | Two | 27
The | Test|54
我尝试了几种使用通配符的方法,但没有成功。
TB LIKE '%_|_[0-9]%' OR TB LIKE '%_|[0-9]%'
AND TB NOT LIKE '%[0-9][^a-z]%'
等等。显然,例如此查询还返回包含456gf和84f的行。
如果你只是想以确保最后一个字符是数字,而不是一个字母,那么你可以使用'ISNUMERIC(右(字符串,1))= 1'或者你可以测试整个在最后一个管道之后的子串。请注意,对于某些符号,isnumeric也会返回true(例如,+ - $) – jpw
@jpw - OP甚至可以使用TB LIKE'%[0-9]'作为检查字符串最后一个字符的方式一个没有'isnumeric'的问号的int – ughai
@ughai啊,对。那会更好。 – jpw