首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sqlite函数在某些情况下不工作

sqlite函数在某些情况下不工作
EN

Stack Overflow用户
提问于 2019-04-18 13:15:53
回答 1查看 417关注 0票数 0

在Sqlite中,我们有table1和column1列,column1有4行,值如下

代码语言:javascript
复制
(p1,p10,p11,p20)

DROP TABLE IF EXISTS table1;
CREATE TABLE table1(column1 NVARCHAR);
INSERT INTO table1 (column1) values ('p1'),('p10'),('p11'),('p20');
Select instr(',p112,p108,p124,p204,p11,p1124,p1,p10,p20,',','+column1+',') from table1;

我们必须获得给定字符串中column1的每个值的位置:

、p112、p108、p124、p204、p11、p1124、p1、p10、p20

查询

代码语言:javascript
复制
Select instr(',p112,p108,p124,p204,p11,p1124,p1,p10,p20,',column1) from table1;

返回值(2,7,2,17)

这不是我们想要的

查询

代码语言:javascript
复制
Select instr(',p112,p108,p124,p204,p11,p1124,p1,p10,p20,',','+column1+',') from table1;

返回所有行的9-原来它是第一个"0“符号的位置?

我们如何才能得到column1在给定字符串中的确切位置?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-18 13:44:57

SQLite中,级联操作符是||而不是+ (如 Server),所以这样做:

代码语言:javascript
复制
Select instr(',p112,p108,p124,p204,p11,p1124,p1,p10,p20,',',' || column1 || ',') from table1;

您对代码所做的是添加数字,这导致了0,因为没有一个字符串操作数可以成功地转换为number,

因此,instr()正在搜索'0',发现它总是位于字符串9',p112,p108,p124,p204,p11,p1124,p1,p10,p20,'的位置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55746851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档