我正在尝试检索以SQlite中任何非字母字符开头的所有列,但似乎无法使其正常工作。我目前有此代码,但它返回每一行:
SELECT * FROM TestTable WHERE TestNames NOT LIKE '[A-z]%'
有没有办法检索TestNames的第一个字符不属于字母的所有行?
你只去第一个角色吗?
select * from TestTable WHERE substr(TestNames,1) NOT LIKE '%[^a-zA-Z]%'
substr函数(在某些SQL语言中也可以称为left())将帮助您隔离字符串中的第一个char。
编辑:也许在sqllite中的substr(TestNames,1,1),我没有准备好的实例来测试那里的语法。
添加:
select * from TestTable WHERE Upper(substr(TestNames,1,1)) NOT in ('A','B','C','D','E',....)
似乎不是最佳选择,但功能上可以正常工作。不确定在SQLlite中有哪些char命令可以执行一系列字母。
我使用“大写”来制作它,因此您无需在not in语句中使用小写字母…希望SQLlite知道那是什么。