SQL BETWEEN无法正常工作

时间:2011-04-29 10:52:25

标签: sql sql-server

我正在使用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'

此命令仅显示空白人员表。

请告诉我它无法正常工作。

3 个答案:

答案 0 :(得分:4)

此查询:

SELECT  *
FROM    persons
WHERE   First_Name between 'Nilsen' and 'Ram'

将在First_NameNilsen之间按字母顺序返回所有Ram条目(例如OscarRachelNorbert

此查询:

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'