postgresql - extract the max value from string in sql -


i work postgresql , want extract max value query:

select max (num_ordre_decision) decision 

the problem num_ordre_decision contains kind of data:

'4/35/677' '4/35/1001' 

the type of column string. when run query have max value:

'4/35/1001' 

which false.

i want compare 677 1001 in order have max value '4/35/677' in previous case.

i think should use split in query.

update

i tried query:

select max(split_part(num_ordre_decision, '/', 3)) decision; 

i have value: '99'

when try run query

select split_part(num_ordre_decision, '/', 3) decision; 

i result

'' '' '677' '1001' '99' 

this result '' appears because real value in table not contain separator '/'. think max(split_part(num_ordre_decision, '/', 3) makes sum meaning makes 9+9. correct result should 1001

so must compared numbers.

updated :

i want use query in project

i have function :

 public list getmaxnumorder (){          string query= "select max(nullif(split_part(num_ordre_decision, '/', 3), '')::int) decision";          sqlquery sqlquery = this.getsession().createsqlquery(query);           return sqlquery.list();      } 

but when have error :

org.hibernate.queryexception: not named parameters have been set: [:int] [select max(nullif(split_part(num_ordre_decision, '/', 3), '')::int) decision]     @ org.hibernate.impl.abstractqueryimpl.verifyparameters(abstractqueryimpl.java:339)     @ org.hibernate.impl.sqlqueryimpl.verifyparameters(sqlqueryimpl.java:228) 

i think should use : query.setparameter

i not know how use it

you can max value as:

select max(split_part(num_ordre_decision, '/', 3)) decision; 

to overall max, might want:

select num_ordre_decision decision order split_part(num_ordre_decision, '/', 3) desc limit 1; 

Comments

Popular posts from this blog

javascript - how to protect a flash video from refresh? -

android - Associate same looper with different threads -

visual studio 2010 - Connect to informix database windows form application -