2016-08-19 152 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或者將會更快。