2016-08-19 108 views
1

我想创建一个BETWEEN参数,该参数返回字母(即介于A-Z和a-z之间)的值。有没有办法做到这一点,而不使用两个BETWEEN子句?SQL BETWEEN区分大小写

+2

对你比较的东西做UPPER或LOWER(或UCASE或LCASE)。 – Hogan

+0

哪个RDBMS是为了这个?请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。 –

回答

2

你不说你用的是什么平台

WHERE UPPER(fieldname) BETWEEN 'A' and 'Z' 

WHERE UCASE(fieldname) BETWEEN 'A' and 'Z' 

你可能想摆脱一些麻烦空间

WHERE UPPER(TRIM(fieldname)) BETWEEN 'A' and 'Z' 

这将是缓慢的,如果我们在其上运行一个函数,我们就不能在索引中使用fieldname。所以我们强制使用表扫描,这意味着如果字段名被索引并且表有一些行数,两个between和an或者将会更快。