仍然没有解决日期写作字符串的问题,这是另一个问题 我有文本列,其中只有数字写(如文本) 通过使用函数MAX,我得到不正确的结果,因为9大于30 在这里有任何内联函数,如VAL或CINT或我可以比较和使用像SELECT,MAX和其他类似的查询中的数字的文本数据(只有数字)?
以下示例中的效果如何:
mCmd = New OdbcCommand("SELECT MAX(myTextColumn) FROM " & myTable, mCon)
答案 0 :(得分:1)
您需要使用max(to_number(myTextColumn, '999999'))
手册中有更多详细信息:http://www.postgresql.org/docs/current/static/functions-formatting.html
如果所有“数字”都是整数,您还可以使用强制转换运算符:max(myTextColumn::int)
如果你的文本值格式正确,你可以简单地将它们加倍,例如:'3.14'::numeric
。
如果未根据语言设置格式化文本,则需要使用包含小数分隔符的格式掩码to_number()
:to_number('3.14', '9.99')
答案 1 :(得分:1)
要让MAX工作得更好,您需要先以数字格式转换文本字段
mCmd = New OdbcCommand("SELECT MAX(TO_NUMBER(myTextColumn, '99999')) FROM " & myTable, mCon)