Sql server perl/sql server查询“;“重新订购”;
很抱歉问这个问题,我相信这已经在其他地方得到了回答,但我甚至不知道什么关键词或如何正确解释它。。。 所以我有这个连接到sql server的perl代码Sql server perl/sql server查询“;“重新订购”;,sql-server,perl,reorderlist,Sql Server,Perl,Reorderlist,很抱歉问这个问题,我相信这已经在其他地方得到了回答,但我甚至不知道什么关键词或如何正确解释它。。。 所以我有这个连接到sql server的perl代码 my $user = ''; my $pass = '.'; my $connection = "dbi:Sybase:server=;database=Adventure"; my $dbh_SQL = DBI->connect($connection, $user, $pass) or die 'Cannot connect'; my
my $user = '';
my $pass = '.';
my $connection = "dbi:Sybase:server=;database=Adventure";
my $dbh_SQL = DBI->connect($connection, $user, $pass) or die 'Cannot connect';
my $query_cust_main = "
SELECT BusinessEntityID,
Title,
FirstName,
LastName,
Suffix,
JobTitle
FROM HumanResources.vEmployee
order by JobTitle";
my $query_cust_sth = $dbh_SQL->prepare($query_cust_main);
$query_cust_sth->execute();
my $all_cust = $dbh_SQL->selectall_arrayref($query_cust_main, {Slice => {}});
foreach my $data (@$all_cust){
print $data->{BusinessEntityID}." ".$data->{FirstName}." ".$data->{LastName}." ".$data->{JobTitle}."\n";
}
此代码打印:
12 Thierry D'Hers工具设计师
13 Janice Galvin工具设计师
2 Terri Duffy工程副总裁
25詹姆斯·汉密尔顿生产副总裁
273 Brian Welcker销售副总裁
现在,我想做的是…以某种方式将结果重新排序如下:
生产副总裁
25詹姆斯·汉密尔顿
273布莱恩·韦尔克
工具设计器
13詹妮斯·高尔文
12蒂埃里·德赫斯
如
职位名称
BusinessEntityID FirstName LastName
是否可以仅在perl中获得此重新排序?不使用/更改查询
谢谢,,
R.我相信有人可以给你一个很酷的嵌套SQL命令来完成这项工作,但我在SQL程序员之前是一个Perl编程人员。因此,如果您不必担心SQL性能,您应该查询数据库中所有不同的职务名称(除非您已经知道),然后循环浏览这些名称(
foreach my$title(@jobTitles)
),打印出标题,然后打印出与该标题匹配的所有记录(其中JobTitle=$title
之类的内容).由于查询返回的是按职务排序的数据,所以您所要做的就是跟踪上一个职务是什么,当它与当前职务不同时,打印出一个新的职务标题,如下面的代码片段所示
my $last_job_title;
foreach my $data (@$all_cust) {
if($last_job_title ne $data->{JobTitle}) {
$last_job_title = $data->{JobTitle};
print $data->{JobTitle},"\n";
}
print $data->{BusinessEntityID}." ".$data->{FirstName}." ".$data->{LastName}."\n";
}