一尘不染

返回第一个字符为非字母的行

sql

我正在尝试检索以SQlite中任何非字母字符开头的所有列,但似乎无法使其正常工作。我目前有此代码,但它返回每一行:

SELECT * FROM TestTable WHERE TestNames NOT LIKE '[A-z]%'

有没有办法检索TestNames的第一个字符不属于字母的所有行?


阅读 191

收藏
2021-05-23

共1个答案

一尘不染

你只去第一个角色吗?

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知道那是什么。

2021-05-23