我具有A,B和C类的数据。我需要将每个类分别导出到excel。到目前为止,我一直在运行Select * From foo WHERE class = 'A';
,我将导出数据,然后将where语句更改为WHERE class = 'B'
,并对C进行相同的操作。
我是SQL的新手,我知道VBA风格的循环将无法工作。
有没有一种方法可以创建一个循环,该循环可以使用A类运行语句,导出数据,将类更改为B并重复?
答案 0 :(得分:0)
Declare @class varchar(10);
DECLARE cur CURSOR READ_ONLY FOR
SELECT -- your list of classes to loop through
OPEN cur
FETCH NEXT FROM cur INTO @class
WHILE @@FETCH_STATUS = 0 BEGIN
--do your export
SQLCMD -S SERVERNAME -E -Q "Select * From foo WHERE class = @class"
-s "," -o "D:\MyData.csv"
FETCH NEXT FROM cur INTO @class
END
CLOSE cur
DEALLOCATE cur
或者您可以使用bcp方法在循环中将其导出到csv
bcp "SELECT blah blah blah" queryout "D:\MyTable.csv" -c -t , -S SERVERNAME -T