1) in where criteria
The only time I've seen this done is in generated queries. That is, a query is built from selecting various options where any combination may occur.
sqlstring = "SELECT ... WHERE 1=1"
if (opt1) then sqlstring = sqlstring + " AND (...)"
if (opt2) then sqlstring = sqlstring + " AND (...)"
if (op33) then sqlstring = sqlstring + " AND (...)"
If the queries are 'hardcoded' then you may as well clean them up.
can you also suggest some best approach/practice to write a query?
Write it so it returns the right results
Seriously... I've found that, although it doesn't affect performance, consistent good formatting helps keep track of what's going on. If your db has all the foreign keys defined properly, then SSMS' view creation is a good way to start; I then edit the SQL to include aliases (otherwise it's far too messy) and finallly switch to a query window to get the formatting right as the layout generated by SSMS is pretty unreadable.