On Thu, May 29, 2008 at 9:45 PM, Theerasak Maneeneim <[EMAIL PROTECTED]> wrote: > Dear All, > > I have some problem with string comparison. I use postgresql > 8.3.1,UTF8 encoding, on CentOS 5.5. Why dose the result of SQL statement : > "select '1.1' < '101';" is false but "select '1.1'::bytea < '101'::bytea;" > is ture?
The UTF encoding isn't what's important here, it's your locale, which is likely something like en_US (but different, whatever you'd have in your country). This locale will be collated (i.e. sorted etc.) by a set of rules for the language where you live. For instance, with a list like: a dc abc a bc adc and an order by on it in locale en_US I get this ordering: abc a bc adc a dc Why? Because according to the rules of english, spaces don't count. If you want byte code ordering, then you need to use Locale=C when you run initdb. Locale can only be changed at initdb time. -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql