Just for the record (I know this is an old thread).
You can't do this in Oracle:
"select name, decode(total > 250, "pass","fail") status from student"
The syntax for the decode function is:
decode( expression , search , result [, search , result]... [, default] )
expression is the value to compare.
search is the value that is compared against expression.
result is the value returned, if expression is equal to search.
default is optional. If no matches are found, the decode will return default. If default is omitted, then the decode statement will return null (if no matches are found).
So, you can't use > with the decode function. It just evaluates if expression matches (i.e. is equal to) search