当我使用Sybase系统(15.0+版本)时,当起始位置不是自然数时,查询结果不同。
如果我只选择字符串值,结果显示如下。
SELECT SUBSTR('123456', 1, 3) AS C1
, SUBSTR('123456', 0, 3) AS C2
, SUBSTR('123456', -1, 3) AS C3
, SUBSTR('123456', -2, 3) AS C4
;
C1 | C2 | C3 | C4
--------------------
123 | 12 | 1 |
但是,如果我通过搜索特定表来使用此查询,结果会有所不同。
SELECT TOP 1
SUBSTR('123456', 1, 3) AS C1
, SUBSTR('123456', 0, 3) AS C2
, SUBSTR('123456', -1, 3) AS C3
, SUBSTR('123456', -2, 3) AS C4
FROM TEMP_TABLE
;
C1 | C2 | C3 | C4
---------------------
123 | 123 | 6 | 56
我已经查过Sybase手册,但没有关于这种情况的明确解释。
有人可以解释一下吗?