【问题标题】:perl/sql server query "re-ordered"perl/sql 服务器查询“重新排序”
【发布时间】:2018-08-06 03:52:15
【问题描述】:

很抱歉问这个问题我确定这已经在其他地方得到了回答,但我什至不知道什么关键字或如何正确解释它...... 所以...我有这个连接到 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 $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 James Hamilton 生产副总裁 273 Brian Welcker 销售副总裁

现在,我想做的事情是……以某种方式重新排序结果:

生产副总裁

25 詹姆斯·汉密尔顿

273 布赖恩·韦尔克

工具设计器

13 珍妮丝·加尔文

12 蒂埃里·德赫斯

职位名称

BusinessEntityID FirstName LastName ...

是否可以仅在 perl 中获得此重新排序?不使用/更改查询?

谢谢你, R.

【问题讨论】:

    标签: sql-server perl reorderlist


    【解决方案1】:

    由于查询返回的是按职位排序的数据,您所要做的就是跟踪以前的职位是什么,当它与当前职位不同时,打印出一个新的职位标题,如下所示sn -p 演示。

    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";
    }
    

    【讨论】:

      【解决方案2】:

      我相信有人可以给你一个很酷的嵌套 SQL 命令来执行此操作,但在 SQL 程序员之前,我是 Perl 编程人员。因此,如果您不必担心 SQL 性能,您应该查询数据库以获取所有不同的职位(除非您已经知道它们),然后遍历标题 (foreach my $title (@jobTitles)),打印出标题并然后是与该标题匹配的所有记录(WHERE JobTitle=$title 之类的东西)。

      【讨论】:

        猜你喜欢
        • 2020-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-04
        • 1970-01-01
        • 2014-10-27
        • 1970-01-01
        相关资源
        最近更新 更多