OracleSQLBETWEEN不返回最后一个值

我正在使用 Oracle SQL Developer,在执行此命令后,只有名称以 开头KL显示。为什么M不出现开头的名字?

SELECT DISTINCT(names) FROM STUDENTS WHERE names BETWEEN 'K%' AND 'M%' ORDER BY 1 DESC;

当我执行时:

SELECT DISTINCT(names) FROM STUDENTS WHERE names BETWEEN 'K%' AND 'N%' ORDER BY 1 DESC;

K, L,M出现但不以开头的名称NBETWEEN是包容的所以有什么问题?

这完美地工作:

SELECT * FROM STUDENTS WHERE year BETWEEN 1 AND 3;

回答

谓词之间并不意味着like您只是在比较字符串。改写这个

-- Names with starting letters K, L, M, N
names >= 'K' AND names < 'O'

或者,使用正则表达式

-- Names with starting letters K, L, M
REGEXP_LIKE (names, '^[K-M]')


以上是OracleSQLBETWEEN不返回最后一个值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>