The empty row situation should be taken care of at the code behind not at the database, not only is it separation of concern, but more importantly it is generic, e.g. what if the condition changes say >= any number, you can't change the sql query every time, can you?
Suggest to check for return row from sql query, if zero, create a datatable dynamically with the columns identical to the expected return columns of the sql query ,i.e. id, description, price, then add a row with the data that you decide, i.e. 0, 'no record', 0. Then bind it to the gridview.
This solution will take care of any zero row situation and is reusable.