下面的解决方案将工作,如果只有名字被计算。
考虑数据:
sqlite> SELECT name FROM COMPANY;
Paul Allen
Mark
Monty Python
Luther Blissett
Monty Cantsin
对于第一次查询:
sqlite> SELECT distinct substr(name,1,1) FROM COMPANY;
P
M
L
,后来换2个输出试试下面的算法:
- ,如果你有1级字符的输入,然后使用substr(name,2,1)
- 如果您有2个字符输入,然后使用substr(名称,3,1)
- ..一般:如果x是字符输入的数量,y是预期的字符输出的数量,请尝试substr(name,x + 1, Y)
sqlite> SELECT distinct substr(name,2,1) FROM COMPANY where name like 'M%';
a
o
sqlite> SELECT distinct substr(name,3,1) FROM COMPANY where name like 'Ma%';
r
如果别人的话也需要考虑搜索,与子查询代替表名,如下。
SELECT distinct substr(name,2,1) FROM
(
select name from company where name like 'A%' -- counts for first word
UNION
select name from company where name like '% A%' -- counts for words that start with space
);
请注意,上面的查询将只返回第一个字的人物,虽然这场比赛是所有的话,将考虑名字为源获取字符。
如果对数据库有不同的查询,那很好。任何解决方案 – Francis
您确定,您的问题最好使用多个数据库查询解决?作为替代方案,请考虑查询数据库一次并编写提取信息的代码。 –
使用[substr()](http://www.sqlite.org/lang_corefunc.html#substr)和[LIKE](http://www.sqlite.org/lang_expr.html#like)。 –