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