SQL - 在 varchar 列之间的 WHERE

SQL - WHERE between on varchar column

我有一个 table companycustomerID 并且我希望每个客户 ID 从 80000 到 80999。

但是 customerID 列是 varchar,其中一些包含字母。

所以,我必须将 customerID 放入“ ”,当我尝试此查询时:

select *
from company
where customerID between '80000' and '80999'

它 returns 也 customerID 例如 800。

知道如何解决这个问题吗?

您可以使用正则表达式来格式化。像这样的事情应该让你开始 Query to get only numbers from a string

where customerID between '80000' and '80999'
  and character_length(customerID) = 5 -- only five digit IDs

如果 CustomerID 是整数(它应该是整数),则不需要在数字两边加上引号。应该可以解决问题:

select *
from company
where customerID between 80000 and 80999;