【问题标题】:SQL greater than & less than statements don't return correct resultsSQL 大于 & 小于语句不返回正确的结果
【发布时间】:2015-07-20 18:42:56
【问题描述】:

我正在运行查询,并且在使用 > 和

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

我该如何纠正这个问题?

【问题讨论】:

  • 作为一个快速的 hack,您可能只需去掉最右边的 5 个字符并比较内部版本号即可。
  • 虽然我标记为重复的问题并不完全匹配,但该问题的答案应该对您有所帮助。

标签: sql sql-server qsqlquery isqlquery


【解决方案1】:

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

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

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

【讨论】:

猜你喜欢
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多