假設您有一個包含 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型別,則不需要使用任何表示式來轉換現有的... 閱讀更多