Select Order by在我的sqlite3语句中不起作用
我有一个sqlite3语句,它通过从多个表创建联合来生成列 然后我尝试按升序排列列。它是一个数字列,定义如下 它点的每样东西都很好,除了一个数字,它放在开头,没有按顺序排列,其余的都点得很好。像这样:Select Order by在我的sqlite3语句中不起作用,select,sqlite,sql-order-by,natural-sort,Select,Sqlite,Sql Order By,Natural Sort,我有一个sqlite3语句,它通过从多个表创建联合来生成列 然后我尝试按升序排列列。它是一个数字列,定义如下 它点的每样东西都很好,除了一个数字,它放在开头,没有按顺序排列,其余的都点得很好。像这样: 27 10 13 26 28 29 29 30 35 这让我怀疑上面的数字27是否不是数字?但也许是一个字符 我尝试使用以下方法解决此问题: Order by column*1 Order by UPPER(column) Order by CAST(column as int) order
27
10
13
26
28
29
29
30
35
这让我怀疑上面的数字27是否不是数字?但也许是一个字符
我尝试使用以下方法解决此问题:
Order by column*1
Order by UPPER(column)
Order by CAST(column as int)
order by ABS(column)
order by column collate BINARY
order by column collate NOCASE
order by column collate RTRIM
我能找到的一切,使它成为一个自然排序和转换成数字
以上所有操作要么返回语法错误,要么不起作用。SELECT typeofMyColumn FROM…?@CL的输出是什么?您帮我修复了它!结果表明,所有数字都是文本,因为这些列包含“NaN”值,除了一个返回实数的列,因为所有数字实际上都存在。因此,这是一个真正的价值与文本价值的情况。为便于将来参考,如果不使用collate,将如何解决此问题?请确保值的开头类型正确;在以后的每个查询中转换它们太麻烦了。