是否在sql中识别了字母数字键,我如何对它们进行操作?

时间:2014-09-17 11:49:49

标签: sql sql-server

我需要为我的一个客户端的SQL数据库编写一个节点js服务。表的主键如下:1,2,... 9,A,B,....,Y,Z,10,11,...... 19,1A,1B ....

现在我有两个主键,我想读取它们之间的所有行。这不起作用:

SELECT COUNT(*) FROM CustomerMaster WHERE CustomerID BETWEEN 0001G AND 0002B

数据库位于SQL Express中。 CustomerID是CustomerMaster的主键。它是专有的销售点软件数据库,因此我无法对数据库进行任何更改。有什么办法可以读取两个主键之间的行吗?

2 个答案:

答案 0 :(得分:1)

您的主键看起来像字符串。字符串常量应用单引号分隔:

SELECT COUNT(*)
FROM CustomerMaster
WHERE CustomerID BETWEEN '0001G' AND '0002B'

答案 1 :(得分:0)

使用前导零填充您的id并使用其正确的部分,例如将'1G'转换为'0001G'。然后比较:

SELECT COUNT(*) 
FROM CustomerMaster 
WHERE right('00000' + CustomerID, 5) BETWEEN '0001G' AND '0002B';