假设您有一个名为 exam_scores 的表,包含 5 列。下面是一个包含一些虚拟数据的示例。nameroll_nosubjecttotal_marksmarks_obtainedAnil1English10056Anil1Math10065Anil1Science10045Roy2English10078Roy2Math10098Roy2Science10067现在,一个学生可能参加了多个科目的考试,因此,同一个学生有多行记录。如果您想找出班级的总学生人数,您可能需要查找 roll_no 的不同值的数量。您可以对特定列应用 distinct 约束,如下所示:SELECT DISTINCT ON (roll_no) name, roll_no FROM exam_scores ORDER BY roll_no DESC此查询的输出如下所示:nameroll_noRoy2Anil1您也可以……阅读更多
如果您是一位程序员,您可能非常熟悉 IF-ELSE 语句。PostgreSQL 中的等效语句是 CASE WHEN。让我们通过一个例子来理解。如果您有一个名为 marks 的表,其中包含学生的百分比分数,并且您想找出学生是及格还是不及格。下面是一个示例表。nameperc_marksAnil24Joy65Ron42Reena87假设及格分数是 40。现在,如果学生的分数高于 40 分,我们想打印“PASS”(及格)在其姓名旁边,否则打印“FAIL”(不及格)。您可以这样做:SELECT name, CASE WHEN perc_marks >= 40 THEN 'PASS' ELSE 'FAIL' END status from ... 阅读更多
为了更改列的类型,语法如下:ALTER TABLE table_name ALTER COLUMN column_name TYPE new_data_type USING expression;请注意,通常不建议更改列的类型,尤其是在您的表中已经有很多条目时。USING 语法的部分是可选的。当您需要使用表达式将该列中现有的条目从当前类型转换为新类型时,它将被使用。例如,如果您将类型为 INTEGER 的列转换为类型 BIGINTEGER,则无需对转换现有……阅读更多