使用 'BETWEEN AND' 和 '[a-b]%' 来比较 SQL 中的字母的区别
difference between using 'BETWEEN AND' and '[a-b]%' to compare the letter in the SQL
我正在 W3resource 上练习一些 SQL 题并遇到了一个问题
'写一个 SQL 语句来查找那些在 'A' 和 'L' 中具有所有其他信息和名字开头的销售员而不是后者。
原来的答案是
SELECT * FROM salesman WHERE name NOT BETWEEN 'A' and 'L';
我尝试了通配符表达式“[A-L]%”,但它不起作用。
SELECT * FROM salesman WHERE name LIKE '[^A-L]%'
本题的link是:
https://www.w3resource.com/sql-exercises/sql-wildcard-special-operator-exercise-8.php
有人可以对此提供一些解释吗?提前致谢。
两者不等价
任何以 L
开头的单词都匹配 NOT BETWEEN
-- "Lowly"、"Likable"、"Lithuanian".
LIKE
根本不匹配任何以 "L" 开头的单词。
等效比较更像是:
where name < 'A' and name >= 'M'
我正在 W3resource 上练习一些 SQL 题并遇到了一个问题 '写一个 SQL 语句来查找那些在 'A' 和 'L' 中具有所有其他信息和名字开头的销售员而不是后者。 原来的答案是
SELECT * FROM salesman WHERE name NOT BETWEEN 'A' and 'L';
我尝试了通配符表达式“[A-L]%”,但它不起作用。
SELECT * FROM salesman WHERE name LIKE '[^A-L]%'
本题的link是: https://www.w3resource.com/sql-exercises/sql-wildcard-special-operator-exercise-8.php
有人可以对此提供一些解释吗?提前致谢。
两者不等价
任何以 L
开头的单词都匹配 NOT BETWEEN
-- "Lowly"、"Likable"、"Lithuanian".
LIKE
根本不匹配任何以 "L" 开头的单词。
等效比较更像是:
where name < 'A' and name >= 'M'