我对Excel VBA有些新意。我正在处理现有的Excel工作表,该工作表通过存储过程从SQL Server表中检索数据。它目前只显示电子表格中的数据。我希望能够按值(0或1)对其进行排序,并将结果打印为组,第一组0,然后组1,并重复组之间的标题。感谢
答案 0 :(得分:1)
要求SQL为您执行此操作:更改服务器上的存储过程以允许排序参数。
或者,您也可以将存储过程的结果存储在表变量中并在那里对结果进行排序(如果您不允许更改存储过程。这可以这样工作:
declare @t table
(
Column1 int,
Column2 bit,
Column3 nvarchar(100),
Column4 nvarchar(100),
Column5 nvarchar(100),
Column6 int,
Column7 nvarchar(100),
Column8 nvarchar(max),
Column9 bit
)
insert into @t
exec sys.sp_who
select *
from @t as t
order by Column3
根据您的评论中的要求,我详细说明了答案。上面的代码是T-SQL:https://en.wikipedia.org/wiki/Transact-SQL 如果您想学习SQL,那么以下网站可以提供很多帮助: http://www.w3schools.com/sql/default.asp
基本上,T-SQL(上面的代码)是您发送到SQL Server的信息,用于告诉服务器您要检索哪种数据。换句话说,这就是Excel发送给服务器并获取数据的回报。有几种不同的方法可以实现这一目标:
Data
标签,如下文所述:http://kildrummy.com/how-to-pulling-export-data-into-excel/注意,屏幕底部显示的窗口名为Connection Properties
。您可以清楚地看到Command Type
被设置为SQL而Command Text
是SQL代码(就像我上面给出的示例)。