在Sqlite中,我们有table1和column1列,column1有4行,值如下
(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
查询
Select instr(',p112,p108,p124,p204,p11,p1124,p1,p10,p20,',column1) from table1;返回值(2,7,2,17)
这不是我们想要的
查询
Select instr(',p112,p108,p124,p204,p11,p1124,p1,p10,p20,',','+column1+',') from table1;返回所有行的9-原来它是第一个"0“符号的位置?
我们如何才能得到column1在给定字符串中的确切位置?
发布于 2019-04-18 13:44:57
在SQLite中,级联操作符是||而不是+ (如 Server),所以这样做:
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,'的位置。
https://stackoverflow.com/questions/55746851
复制相似问题