我需要为我的一个客户端的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的主键。它是专有的销售点软件数据库,因此我无法对数据库进行任何更改。有什么办法可以读取两个主键之间的行吗?
答案 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';