SQL UNION踩過的坑

2021-08-22 10:14:04 字數 972 閱讀 2371

union 操作符用於合併兩個或多個 select 語句的結果集。

請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。

select column_name(s) from table_name1

union

select column_name(s) from table_name2

注釋:預設地,union 操作符選取不同的值。如果允許重複的值,請使用 union all。

select column_name(s) from table_name1

union all

select column_name(s) from table_name2

另外,union 結果集中的列名總是等於 union 中第乙個 select 語句中的列名

eg:

表中的資料:

使用union 查詢

上圖中的例子 根據型別 分別統計了 color 和total兩個欄位的和,稍不注意就會把 3和79當成乙個"型別"的資料,尤其是在聚合操作大量資料的時候.

總結:1.使用union時,一定要保證每條語句的字段順序一致,特殊需求除外.

2.union all(結果集不去重)比union(結果集去重)的執行效率高很多 注意區別

3.如果要排序在最後乙個select語句上加order by即可

git踩過的坑

4.git 修改當前的project的使用者名稱的命令為 git config user.name 你的目標使用者名稱 git 修改當前的project提交郵箱的命令為 git config user.email 你的目標郵箱名 如果你要修改當前全域性的使用者名稱和郵箱時,需要在上面的兩條命令中新增...

springboot踩過的坑

設定上下文路徑context path不生效 springboot 2.0之前的語法 server.context path xx 2.0之後的語法 server.servlet.context path xx 在配置yml時,報錯如下 caused by org.yaml.snakeyaml.sc...

Vue踩過的坑

vue檔案縮排問題,嚴格縮排,如果需要四個字元的縮排請修改為,當然造成這個的結果是,建立檔案的時候 use eslint to lint your code?這句話就是告訴你是不是要給你管理 縮排,選擇no就完事了,啥事沒有 下面是.eslintrc.js的 如果你選擇了yes的話就修改下面這段 吧...