一个字符串的截取是在sql里面做和在javA里面做,哪个效率高?

TABLE T 中字段 A ="CHINA".

我现在要得到"CH",

可以再sql中 用 select substr(A,0,2) from T.

还可以直接取出来。在java中
String a="China"

a=substring(0,2)

哪个效率更高一些阿

我想应该是用sql
但是说不出来原因。。
请大家指教阿。

谢谢。

Thomas Kyte的Oracle编程艺术(图灵编译)有这么一句,能够在数据库中实现的功能一定要在数据库实现,在说数据库用C写的,肯定快点,用java的话还要遍历一遍查询结果,数据可想而知。

想知道那个效率高,还是需要自己跑跑代码吧,如果是我写这样逻辑的代码话,我就会放在Java处理,个人的理解如下:
1. substr跟数据库绑定在一起了,万一老板喊移植,就有点郁闷了;
2. 后期维护Java代码比维护SQL代码轻松;
3. 数据库资源比应用服务器资源更可贵;
4. ……大家补充吧,一时就像到这些。

select substr(A,0,2) from T

这样是取一个数组出来,自然是在sql里效率高多了,不然搞到java里,还得遍历一个个再去进行字符串的操作,浪费时间和空间

如果只是取一个值,那就无所谓效率问题了,

在程序中都灵活一些.
DB是存储的地方,不是业务处理的地方.