Question: I would like to convert the string values in column b to float. Wondering how should I make it.

```
A    B
1    16-1/4
2    3-1/4
3    21-1/4
4    8-1/4

```

Answer: 
I am guessing that there is not situation where a `case` expression would use an index in Postgres. This is because the `case` expression enforces an order of evaluation -- which is quite hard to ensure once indexes are involved.

There might be some exceptions where the compiler recognizes that the `case` expression is redundant and it gets removed before the optimization phase.

That said, your case expression is useless. Just use:

```
SELECT *
FROM table
WHERE table.col AND object ;

```

Notes:

* The SQL Standard for boolean and is `AND`. Use it.
* `= true` is redundant. You can include it, but it is not necessary.
* You have two boolean columns. In many cases, an index will not be used even if available because the columns are (probably) not very selective.
Your query is not so much clear.But as per assumption,you can do something like this 

SELECT 
CASE WHEN table.col && object = true THEN true ELSE false END as 
INTO #TEMP\_TABLE
FROM table 

Then you can create a CLUSTERED/NON\_CLUSTERED INDEX

CREATE INDEX idx\_col on TABLE #TEMP\_TABLE()

Then you can select the result:

SELECT \* FROM #TEMP\_TABLE WHERE =