0

我正在运行查询,并且在使用 > 和 < 语句时它们没有查看整个数字,因此在此示例中,结果不正确,因为它查看的是第一个八位字节中的 1 而不是 10。这是查询和结果的摘录。

select distinct v1.name, v1.[user], t1.displayversion from vComputer v1
inner join Inv_AddRemoveProgram t1 on v1.Guid = t1._ResourceGuid
where t1.DisplayName like 'Symantec Enterprise Vault%' and t1.DisplayVersion < '9.0.13509'

结果:

name            user          displayversion
ATVIEL-PB0225L4 bunger          10.0.17573
ATVIEL-PB0225LH fmotedayen      10.0.17573
ATVIEL-PB036MTR skoeroezsi      10.0.17573
ATVIEL-PB036MTS criesenhuber    10.0.17573
ATVIEL-PC00768L skaehler        10.0.17573

我该如何纠正?

4

1 回答 1

1

问题是您正在比较字符串,然后将按字母顺序进行。你基本上有2个选择:

  1. 将版本号拆分为多个部分,以便您可以将每个部分转换为数字,并按顺序排列 3 个字段(或版本中的最大部分数量)

  2. 使用前导零存储版本号,以便字母顺序与数字顺序相同。

于 2015-07-20T18:45:04.273 回答