1

场景是,我想编写一个查询来显示一个表的所有列以及一个附加列。

例如:

我想显示jobs表的所有列和行,可以通过 select * from jobs来完成;

现在我还希望 min_salary 和 max_salary 之间的差异与所有其他列一起显示。所以我确实尝试过, 从工作中选择 *, max_salary - min_salary SalaryDiff; 这不是一个有效的查询,它显示。

于是我尝试了传统的方式, 从jobs中选择job_id、job_title、min_salary、max_salary、max_salary-min_salarysalaryDiff; 这行得通。

这不是一项艰巨的工作,因为在上面的示例中它只有 4 列,但是,如果一个表有 10 或 20 列并且我们遇到了这样的场景怎么办?传统方式是唯一的方式吗?还是有其他方法可以做到这一点?

4

1 回答 1

2

您必须*使用星号所指的表名(或其别名)作为前缀:

select jobs.*, max_salary - min_salary salaryDiff from jobs;

同样的事情,但有一个别名:

select j.*, max_salary - min_salary salaryDiff from jobs j;
于 2013-07-10T07:36:27.860 回答