SQL大于&少于陈述不能返回正确的结果

时间:2015-07-20 18:42:56

标签: sql sql-server qsqlquery isqlquery

我正在运行查询,并且在使用>时他们不会查看整个数字。和<语句所以在这个例子中结果是不正确的,因为它在第一个八位字节中查看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

我该如何纠正?

1 个答案:

答案 0 :(得分:1)

问题在于您正在比较字符串,然后将按字母顺序完成。你基本上有两个选择:

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

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