Dear Jeff,

Thank you for your help.

I tried : select max((id::text)::integer) from test;

and works perfectly!

Greetings from Brazil!

Rodrigo Carvalhaes

Jeff Eckermann wrote:

--- Rodrigo Carvalhaes <[EMAIL PROTECTED]> wrote:



Hi !

I am quite confused of the results on a SELECT
max...

My environment:
Conectiva Linux 10, PostgreSQL 7.4.6 (compiled from
the sources)

My problem is the "select max(id) FROM test" the
result is 20 but the right is 1020. Is this a BUG or I am crazy ??



For a char() column, '20' is the maximum of the values that you have inserted, because the comparison is text-based, not numeric. If you want numeric sorting, you will need to cast the value, like:

select max(cast(id as integer)) from test;

I'm not sure offhand whether in fact a direct cast
from char() to integer is available; you may need to
cast to "text" first.

But if you expect to be able to sort numerically, why
are you not using a numeric datatype?



Cheers,

Rodrigo Carvalhaes

The SQL...

teste=# CREATE TABLE test ( id char(15), name
char(80) );
CREATE TABLE
teste=# \d test
     Table "public.test"
Column |     Type      | Modifiers
--------+---------------+-----------
id          | character(15) |
name   | character(80) |

teste=# INSERT INTO test VALUES ( '10', 'luidgi');
INSERT 15303727 1
teste=# INSERT INTO test VALUES ( '20', 'luis');
INSERT 15303728 1
teste=# INSERT INTO test VALUES ( '1010', 'ruan');
INSERT 15303729 1
teste=# INSERT INTO test VALUES ( '1020', 'lion');
INSERT 15303730 1
teste=# SELECT * FROM test;
id | name




-----------------+----------------------------------------------------------------------------------


10              | luidgi
20              | luis
1010            | ruan
1020            | lion
(4 rows)

teste=# SELECT max(id) FROM test;
max
-----
20
(1 row)

teste=# select max(id) FROM test;
max
-----
20
(1 row)





---------------------------(end of
broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to
[EMAIL PROTECTED]


---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]







__________________________________ Do you Yahoo!? Meet the all-new My Yahoo! - Try it today! http://my.yahoo.com







---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
     joining column's datatypes do not match

Reply via email to