Я всегда проповедовал моим разработчикам, что SELECT * является злым, и его следует избегать как чуму.
Есть ли случаи, когда это может быть оправдано?
Я не говорю о COUNT(*), который может определить большинство оптимизаторов.
Edit
Я говорю о производственном коде.
И один замечательный пример, который я видел в этой плохой практике, - это традиционное приложение asp, которое использовало SELECT * в хранимой процедуре и использовало ADO для циклического преобразования возвращаемых записей, но получило столбцы по индексу. Вы можете себе представить, что произошло, когда новое поле было добавлено где-то, кроме конца списка полей.