【问题标题】:How to sort by INT type column as it would be VARCHAR type column in Derby DB?如何按 INT 类型列排序,因为它是 Derby DB 中的 VARCHAR 类型列?
【发布时间】:2014-12-04 22:21:42
【问题描述】:

这是 SQL 表达式:

SELECT * FROM someTable ORDER BY integerTypeColumn ASC;

列“integerTypeColumn”是 INT 类型。使用 Berby DB 的结果例如:

1
2
3
1000
1200

但我需要像“integerTypeColumn”列将是 VARCHAR 类型一样进行排序。那么结果将是:

1
1000
1200
2
3

是否可以使用 Derby 来做到这一点?

【问题讨论】:

  • 您可以转换为 varchar。
  • 不,会抛出错误:java.sql.SQLSyntaxErrorException: Cannot convert types 'INTEGER' to 'VARCHAR'。

标签: sql sorting sql-order-by derby


【解决方案1】:

您可以将cast 转为char

SELECT * FROM someTable 
ORDER BY CAST (integerTypeColumn AS char(10)) ASC;

【讨论】:

  • 我这样做了,但德比不允许这样做 - here 你可以看到。
  • @ErnestasGruodis:我发布了相同的链接。你注意到我用过char吗?
  • 哇,超级 :) CAST (integerTypeColumn AS char(10)) 帮助了!有趣的细微差别:)
猜你喜欢
  • 1970-01-01
  • 2019-10-22
  • 1970-01-01
  • 2012-04-17
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 2023-03-04
相关资源
最近更新 更多