You may be able to use a CASE expression to solve this problem:
SELECT name, power FROM card
WHERE
( case when power = '*' or power = '{' or power = '^' then null else
integer( power ) end ) > 7;
Unfortunately, the non-numeric characters I mentioned are the only ones in
the data set *at the moment*. In the future, other non-numeric characters
may be introduced - which makes this technique inpractical.
I think i'm going to have to bite the bullet and just store the data in two
columns - one of type INTEGER, the other VARCHAR, and just make sure the
INSERT logic only populates the INTEGER column if the value is made up of
numeric characters.
I know this is a bit of a no-no in terms of database design, but I can't see
any way around it.
In any case, thanks for the suggestion Rick.
Jazz