我正在使用Microsoft SQL Server
我正在尝试使用以下sql命令来获取First_Name“Nilsen”和“Ram”之间的记录
select * from persons where First_Name between 'Nilsen' and 'Ram'
但我将输出作为两个记录,名字为“nilsen”和“ram”;不是这些记录之间的记录。
在另一个命令中,我尝试用姓氏做类似的事情。
select * from persons where Last_Name between 'Johan' and 'Chandra'
此命令仅显示空白人员表。
请告诉我它无法正常工作。
答案 0 :(得分:4)
此查询:
SELECT *
FROM persons
WHERE First_Name between 'Nilsen' and 'Ram'
将在First_Name
和Nilsen
之间按字母顺序返回所有Ram
条目(例如Oscar
,Rachel
或Norbert
)
此查询:
SELECT *
FROM persons
WHERE Last_Name between 'Johan' and 'Chandra'
将永远不会返回任何内容,因为Johan
大于Chandra
(即稍后按字母顺序排列)。
<强>更新强>
只是一个疯狂的猜测:如果你想匹配像Nilsen Hermenegild J. P. Ram, Jr.
这样的东西,你需要使用它:
SELECT *
FROM persons
WHERE FirstName LIKE '%Nilsen%Ram%
答案 1 :(得分:1)
这是BETWEEN的工作原理,来自MSDN
BETWEEN如果值为,则返回TRUE test_expression大于或 等于begin_expression的值 并且小于或等于 end_expression具有
所以
select * from persons where First_Name between 'Nilsen' and 'Ram'
应返回名字为“Nilsen”和“Ram”的记录,以及。之间的记录。
答案 2 :(得分:0)
猜猜,试试这个:
select * from persons where lower(First_Name) between 'nilsen' and 'ram'