In reply to prashanth.billava:
Once again you fail to provide complete information. Please show us the declarations of all identifiers in your example. Is SCENARIO a macro? Is io_output_data a net or a variable? This matters because the answers impose certain restrictions that limit your choices for a solution.
Also, you make a statement “If I have to make use of conditional operator, I have to use always block.” That certainly is not true, and your first example show it as well.
Sometimes it is easier to use a case or nested if/else statement instead of a nested ternary operator. If you have to use a continuous assignment to a net, you can put those statements in a function, and use the output of the function to drive a continuous assignment.