假设您有一个包含 5 列的 exam_scores 表。下面是一个包含一些虚拟数据的示例。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类型,则不需要使用任何表达式来转换现有的... 阅读更多