在SQLite3中查找子字符串的索引?

8
什么是在varchar列中查找子字符串索引的最简单方法?在SQLite3的原始版本中不存在charindex,这仍然让我有点惊讶。
具体来说,我有一个包含像010000011000010110等值的列。我想要找到第一个出现的11的索引。对于我给出的示例,我期望得到NULL(或-1)、13之类的结果。
我有一个混合在一起的想法,使用了lengthltrim,但对于我需要多次执行的任务来说,这似乎是很费力的事情。
2个回答

11

现在可以使用内置的instr函数来实现这一点。

sqlite> select instr(010000,11);
0
sqlite> select instr(011000,11);
1
sqlite> select instr(010110,11);
3

1
sqlite 3.7.6及以下版本不包含此功能 :( - Géza Török

2

不幸的是,我认为你已经找到了目前唯一可行的答案。SQLite没有charindex等效函数。您可以使用length和trim自己创建,但没有内置的函数可以使用:(


1
这太奇怪了...即使只是一些语法糖(但内置的)也可以。我想知道为什么包括像charindex这样的东西的理由是什么... - Benjamin Oakes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接