About the "substr(X,Y,Z)" function, I observe a strange behaviour when Y = 0.

If I execute this script:

select 'abcd',substr('abcd',0,1),substr('abcd',1,1),substr('abcd',2,1);
select 'abcd',substr('abcd',0,2),substr('abcd',1,2),substr('abcd',2,2);
select 'abcd',substr('abcd',0,9),substr('abcd',1,9),substr('abcd',2,9);
select 'abcd',substr('abcd',0),substr('abcd',1),substr('abcd',2);

It prints:

+--------+--------------------+--------------------+--------------------+
| 'abcd' | substr('abcd',0,1) | substr('abcd',1,1) | substr('abcd',2,1) |
+--------+--------------------+--------------------+--------------------+
| abcd   |                    | a                  | b                  |
+--------+--------------------+--------------------+--------------------+
+--------+--------------------+--------------------+--------------------+
| 'abcd' | substr('abcd',0,2) | substr('abcd',1,2) | substr('abcd',2,2) |
+--------+--------------------+--------------------+--------------------+
| abcd   | a                  | ab                 | bc                 |
+--------+--------------------+--------------------+--------------------+
+--------+--------------------+--------------------+--------------------+
| 'abcd' | substr('abcd',0,9) | substr('abcd',1,9) | substr('abcd',2,9) |
+--------+--------------------+--------------------+--------------------+
| abcd   | abcd               | abcd               | bcd                |
+--------+--------------------+--------------------+--------------------+
+--------+------------------+------------------+------------------+
| 'abcd' | substr('abcd',0) | substr('abcd',1) | substr('abcd',2) |
+--------+------------------+------------------+------------------+
| abcd   | abcd             | abcd             | bcd              |
+--------+------------------+------------------+------------------+

It seems that Y=0 denotes a fictitious empty position before the first one (Y=1).Is it the intended behaviour?

The documentation (https://www.sqlite.org/lang_corefunc.html#substr), says nothing about this specific pattern.

J-L Hainaut


_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to