Thread: Sort problem

Sort problem

From
"Samuel J. Sutjiono"
Date:
I was trying to do the following sort (two attributes with different types), but I kept on getting errors. 
 
ORDER BY Price (data type - decimal), ProductName (data type - varchar)
 
Thanks for any help.
 
 

Re: [SQL] Sort problem

From
Bruce Momjian
Date:
Samuel J. Sutjiono wrote:
> I was trying to do the following sort (two attributes with different types), but I kept on getting errors.
>
> ORDER BY Price (data type - decimal), ProductName (data type - varchar)

Would you share the errors with us?  :-)

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: [SQL] Sort problem

From
"Samuel J. Sutjiono"
Date:
Bruce,

My apology. Actually I posted the wrong problem. Here is my problem:

IF (SortOrder = ''price'') Then
BEGIN
 For rec_set IN
   SELECT * from Catalog where ((VendorName ~* SearchString)
   ORDER BY CASE WHEN SortOrder = ''store'' Then VendorName
                                 WHEN SortOrder = ''category'' Then
ProductCategory Else Price END

Here is the error message:
ERROR:  CASE types "numeric" and "varchar" not matched.

By the way, do you know how to do a variable (that contains 'attribute name'
instead of 'attribute value') substitution. For instance, if the attribute
name 'Price' is passed to the sort parameter ($1) so I can just do ORDER BY
$1 instead of doing case statement.

Thanks so much for your help.
Sam


----- Original Message -----
From: "Bruce Momjian" <pgman@candle.pha.pa.us>
To: "Samuel J. Sutjiono" <ssutjiono@wc-group.com>
Cc: <pgsql-general@postgresql.org>; <pgsql-sql@postgresql.org>
Sent: Monday, February 25, 2002 2:46 PM
Subject: Re: [SQL] Sort problem


> Samuel J. Sutjiono wrote:
> > I was trying to do the following sort (two attributes with different
types), but I kept on getting errors.
> >
> > ORDER BY Price (data type - decimal), ProductName (data type - varchar)
>
> Would you share the errors with us?  :-)
>
> --
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman@candle.pha.pa.us               |  (610) 853-3000
>   +  If your life is a hard drive,     |  830 Blythe Avenue
>   +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
>


Re: [SQL] Sort problem

From
Bruce Momjian
Date:
Samuel J. Sutjiono wrote:
> Bruce,
>
> My apology. Actually I posted the wrong problem. Here is my problem:
>
> IF (SortOrder = ''price'') Then
> BEGIN
>  For rec_set IN
>    SELECT * from Catalog where ((VendorName ~* SearchString)
>    ORDER BY CASE WHEN SortOrder = ''store'' Then VendorName
>                                  WHEN SortOrder = ''category'' Then
> ProductCategory Else Price END
>
> Here is the error message:
> ERROR:  CASE types "numeric" and "varchar" not matched.
>
> By the way, do you know how to do a variable (that contains 'attribute name'
> instead of 'attribute value') substitution. For instance, if the attribute
> name 'Price' is passed to the sort parameter ($1) so I can just do ORDER BY
> $1 instead of doing case statement.

The CASE can't return on type of data in one branch and a different type
in another.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: Sort problem

From
Oliver Elphick
Date:
On Mon, 2002-02-25 at 17:17, Samuel J. Sutjiono wrote:
> I was trying to do the following sort (two attributes with different types), but I kept on getting errors.
>
> ORDER BY Price (data type - decimal), ProductName (data type - varchar)

There doesn't seem to be anything wrong with that phrase.  You need to
show us the whole query and the error messages.

--
Oliver Elphick                                Oliver.Elphick@lfix.co.uk
Isle of Wight                              http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C

     "Peace I leave with you, my peace I give unto you; not
      as the world giveth, give I unto you. Let not your
      heart be troubled, neither let it be afraid."
                                John 14:27