La respuesta variará según el idioma en el que esté escrita su aplicación, pero utilice C# como ejemplo. Una forma común es completar un conjunto de datos a partir de la consulta sql y luego grabar el conjunto de datos usando bucles para generar el csv.
Aquí hay un ejemplo de ese enfoque de la interweb.
http://www.diaryofaninja.com /blog/2009/12/16/c-convert-dataset-to-csv
Aquí hay otro ejemplo usando VB
http://www.vbnettutorial.net/?Id=119&Desc =Exportar-CSV-desde-Conjunto de datos
La complejidad de los datos puede requerir que se vuelva elegante... (por ejemplo, ¿sus datos tienen comillas dobles, comas, datos binarios?