description    | description
-------------------+-------------
 18 cm long wrench | Scene 1
 absolute root     |
 blue screwdriver  | Scene 1
 red toolbox       | Scene 1
 root 3            | Scene 1
 root 4            | Scene 2
 root 6            | Scene 3
 small wrench      | Scene 1
 tire              | Scene 2



On Mon, Feb 3, 2014 at 11:14 AM, Adrian Klaver <adrian.kla...@gmail.com>wrote:

> On 02/03/2014 10:53 AM, Susan Cassidy wrote:
>
>> I have a column that contains items like
>> 'absolute root'
>> 'root 3'
>> 'root 4'
>> 'root 5'
>> 'scene 1'
>> 'scene 2'
>> 'scene 3'
>>
>> and I would like them to sort in that order.
>>
>> I tried:
>> select sti.description, sc.description from scene_thing_instances sti
>> join scenes sc on sti.scene_id = sc.scene_id
>>    order by CASE sc.description
>>              when (sc.description = 'absolute root'::text) then 1
>>              when (sc.description ilike 'root%') then  2
>>              else 3
>>             END;
>>
>> I was starting with this, and was going to add perhaps another case
>> statement.
>>
>> But it gives me:
>> ERROR:  operator does not exist: text = boolean
>> LINE 3:             when (sc.description = 'absolute root'::text) th...
>>                      ^
>> HINT:  No operator matches the given name and argument type(s). You
>> might need to add explicit type casts.
>>
>> I don't understand this because description is a text column, not
>> boolean, and certainly 'absolute root'::text is a text string.
>>
>> This is 9.2.
>>
>> Ideas, anyone?
>>
>
> select sti.description, sc.description from scene_thing_instances sti join
> scenes sc on sti.scene_id = sc.scene_id
>   order by sc.description, CASE
>             when (sc.description = 'absolute root'::text) then 1
>             when (sc.description ilike 'root%') then  2
>             else 3
>            END;
>
>
>> Thanks,
>> Susan
>>
>
>
> --
> Adrian Klaver
> adrian.kla...@gmail.com
>

Reply via email to