|
另外要提一下的是,使用greatest函数时一定要注意它的隐式类型转换的问题,它会将函数内的所有表达式隐式转换为第一个表达式的类型,所以有时会出现看似很奇怪的现象:
SQL> create table test1( a int,b char(5),c int,d int);
SQL> insert into test1 values(112,'9',54,73);
SQL> insert into test1 values(7,'123',9,34);
SQL> select greatest(a,b,c,d) from test1;
GREATEST(A,B,C,D)
-----------------
112
123
SQL> select greatest(b,a,c,d) from test1;
GREATEST(B,A,C,D)
----------------------------------------
9
9
SQL> drop table test1;
完全相同的数据表,完全相同的函数,只是参数的顺序变了一下,却得到了完全不同的结果。
注:字符串的大小比较是从左向右比较其ASCII码的大小。 |
|