Code Bye

如何使用sql来对CSV操作

现在找到了使用csvjdbc对csv文件进行操作,但是有个问题就是csvjdbc对字段的大小比较是按照字符串比较的,比如有12 13 111三个数据,选择大于12的只会把13选出来,而111不会。

求教!

顶一下顶一下

5分
没用过,随便说下想法,不知道有没有办法按数字比较,如果没有的话可以变通一下,比如你举得例子,那可以先把大于两位的选出来,再把剩下的两位的跟你的12比,不知道能满足你的要求么
转换成数字再比较?
引用 2 楼 yyy269954107 的回复:

没用过,随便说下想法,不知道有没有办法按数字比较,如果没有的话可以变通一下,比如你举得例子,那可以先把大于两位的选出来,再把剩下的两位的跟你的12比,不知道能满足你的要求么

这个包是直接用sql实现尚筛选的,sql里面没办法实现这个复杂的比较吧

引用 3 楼 u012047741 的回复:

转换成数字再比较?

这个包是直接用sql实现尚筛选的,sql里面怎么指定一个字段用数字大小比较呢


5分
引用 5 楼 QQ297095637 的回复:
Quote: 引用 3 楼 u012047741 的回复:

转换成数字再比较?

这个包是直接用sql实现尚筛选的,sql里面怎么指定一个字段用数字大小比较呢

有把字符串转数字的函数,你可以查下


10分
to_num之后再比较,
当成字符串去比较12当然要比111大了。
引用 6 楼 u012047741 的回复:
Quote: 引用 5 楼 QQ297095637 的回复:
Quote: 引用 3 楼 u012047741 的回复:

转换成数字再比较?

这个包是直接用sql实现尚筛选的,sql里面怎么指定一个字段用数字大小比较呢

有把字符串转数字的函数,你可以查下

mysql是有的,叫做cast()
但是csvjdbc好像没有那么强大

引用 7 楼 sositesine 的回复:

to_num之后再比较,
当成字符串去比较12当然要比111大了。

csvjdbc好像没有这个函数?


15分
用 ODBC-JDBC 桥接驱动结合 ODBC 数据源配置成 Float 或 Integer 或 Long 数字列的话,应该行吧。
引用 10 楼 humanity 的回复:

用 ODBC-JDBC 桥接驱动结合 ODBC 数据源配置成 Float 或 Integer 或 Long 数字列的话,应该行吧。

 嗯嗯,这个办法在win下车时可行,linux下同样需要配置txt的驱动,测试可行


5分
使用linq可以自定义顺序等….

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明如何使用sql来对CSV操作