当前位置: 首页 > 面试题库 >

如何选择最大的混合字符串/整数列?

丁和歌
2023-03-14
问题内容

可以说我有一个表,其中包含发票编号列,数据类型为VARCHAR,具有混合的字符串/整数值,例如:

invoice_number
**************
    HKL1
    HKL2
    HKL3
    .....
    HKL12
    HKL13
    HKL14
    HKL15

我试图选择最大值,但它返回的是“ HKL9”,而不是最高值“ HKL15”。

SELECT MAX( invoice_number )
FROM `invoice_header`

问题答案:

HKL9(字符串)大于HKL15,因为它们被比较为字符串。解决问题的一种方法是定义一个仅返回发票编号数字部分的列函数。

如果您的所有发票编号均以开头HKL,则可以使用:

SELECT MAX(CAST(SUBSTRING(invoice_number, 4, length(invoice_number)-3) AS UNSIGNED)) FROM table

它使用invoice_number(不包括前3个字符)转换为int,然后从中选择max。



 类似资料:
  • 我需要从变量中选择最后两个字符,无论是数字还是字母。 例如: 我想显示变量中字符串的最后两个字母。

  • 问题内容: 目标是用数字表示的char值替换SQL查询中返回的整数值。例如: 标记为“端口”的表属性定义为1-4之间的整数。1 =篮球,2 =曲棍球,等等。下面是数据库表,然后是所需的输出。 数据库表: 所需的输出: 将这些整数值转换为String值的最佳实践是什么?在传递给程序之前使用SQL转换值?使用脚本语言来更改程序中的值?更改数据库设计? 问题答案: 数据库应该保存这些值,并且您应该执行连

  • 假设我有一个有2列的表:name和number。Name是一个字符串,可以有一个或多个单词,我想要一个新的查询选择名称编号,但在Name列,它只有最长的词,原来的表。 SQL中是否有一个函数只从字符串中提取最长的单词?

  • 我试图从标准输入中读取一些非常大的数字,并将它们相加。 然而,要添加到BigInteger,我需要使用

  • val textoData=itemView。findViewById(R.id.texto_data_abastecimento)textoData。text=abastecimento。datam。toString()。子序列(0..10) 我试图只使用前5个字符在适配器上显示,我最终得到以下错误: java.lang.StringIndexOutOfBounds异常:长度=0;索引=6

  • 问题内容: 有MySQL函数可以执行此操作(当然不是)吗? 问题答案: 您正在寻找获取字符串中的字符数。 对于多字节字符集,将为您提供字符串占用的字节数,同时将返回字符数。