BETWEEN
在WHERE
子句中用于选择两个值之间的数据范围。
如果我是正确的,是否排除范围的端点是 DBMS 特定的。
我无法理解以下内容:
如果我有一个值表并且我执行以下查询:
SELECT food_name
FROM health_foods
WHERE calories BETWEEN 33 AND 135;`
查询作为结果行返回,包括卡路里 =33 和卡路里 =135(即包括范围端点)。
但如果我这样做:
SELECT food_name
FROM health_foods
WHERE food_name BETWEEN 'G' AND 'O';
我没有food_name
以 .开头的行O
。即范围的末尾被排除在外。
为了使查询按预期工作,我键入:
SELECT food_name
FROM health_foods
WHERE food_name BETWEEN 'G' AND 'P';`
我的问题是为什么BETWEEN
数字和文本数据有这样的差异?