Not in a single SQL statement, although you can write some procedure code to do it. You can also limit the number of deletes performed, and then keep submitting the same SQL statement until all the rows are deleted (which would be the same single SQL statement, but submitted multiple times).
You can also alter the table to "not logged initially" and delete the rows in the same unit of work, and then commit, which will not log the deletes. However, be aware that if things go bad, your database may be hosed, since that is a non-recoverable transaction.
Another option is to export the rows you want to keep, and load-replace them back into the table.