I'm looking for a way to fetch at least 20 rows, regardless of the date or all rows with a date greater than a set date (whichever of the 2 fetches the most rows).

For example:

```
SELECT *
FROM table1
WHERE the_date >= '2014-11-01'
ORDER BY the_date DESC

```

will give me what I want, but if this returns less than 20 rows then I want to keep going before that date until I get 20 (or until there are no more rows - whichever comes first).

I could just select all and take the ones I need programatically, but I'm trying to avoid that as that would be a major change to the actual code in many places.

Can this be done?

**Note:** I am using SQL Server 2008.