如何令sql查詢的結果集與客戶提供的excel表格中列的資料保持一致
今天為客戶提供報表時,碰到一個小問題,客戶提供給我的是excel表格,表格之中有個列名為訂單號碼(order_id),
需要我作什麼呢,到資料庫中查詢這些訂單號碼,並提取與訂單相關的資料填充更新到他們傳送給我的表格中。
這裡有個問題:訂單相關的資料是儲存在表:deal_order,用sql根據客戶的要求查詢後,得到的結果order_id訂單號碼的
順序與客戶傳送給我的就不一一匹配了,導致要手工
一一匹配,然後把相符的訂單資料填充更新到客戶所需的excel表格中;
如何解決令客戶提供的訂單號碼的順序與經過sql查詢後的訂單號碼的順序相匹配,或者說相一致呢,這樣很簡便了。
直接把查詢的結果複製到表格中,發給客業即可,節省了
大量的時間.
分析:
客戶表格
order_id
1
3
2
查詢的sql
order_id
1
2
3
如何把客戶的表格轉換為一種形式,經sql查詢後原順序不變化,即新加一個列即可,此列與原order_id對應
,最終對這個新新增的列order by即不打亂原訂單的順序了
--建立表
create table deal_order(order_id int);
--插入資料
insert into deal_order values(1);
insert into deal_order values(2);
insert into deal_order values(3);
insert into deal_order values(4);
--提交
commit;
---新增一個新表t_map,用於對映原表格order_id與新添列的關係
create table t_map(order_id int,orig_col int);
---建立一個序列,基於序列可實現order_id無變更順序的功能
create sequence seq_map start with 1;
--假如原表格提供的訂單順序為:3,2,1,4
insert into t_map(order_id,orig_col) values(3,seq_map.nextval);
insert into t_map(order_id,orig_col) values(2,seq_map.nextval);
insert into t_map(order_id,orig_col) values(1,seq_map.nextval);
insert into t_map(order_id,orig_col) values(4,seq_map.nextval);
--提交
commit;
--執行產生客戶報表的sql
select t_map.order_id,t_map.orig_col
from deal_order,
t_map
where deal_order.order_id=t_map.order_id
order by t_map.orig_col;
SQL> --執行產生客戶報表的sql
SQL> select t_map.order_id,t_map.orig_col
2 from deal_order,
3 t_map
4 where deal_order.order_id=t_map.order_id
5 order by t_map.orig_col;
ORDER_ID ORIG_COL
--------------------------------------- ---------------------------------------
3 2
2 3
1 4
4 5
小結;
1,勤于思考很重要,絕對可以提高工作效率
2,藉助序列作為紐帶,實現客戶訂單號碼在執行sql查詢後順序不打亂
3,構建一箇中間表,作為序列工作的基礎
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-755036/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 報表表樣多excel表格與sql查詢結果一一匹配_order by decode and 中間表ExcelSQL
- SQL查詢結果集對注入的影響及利用SQL
- Excel查詢兩列資料相同的元素Excel
- PB帶引數帶結果集的動態SQL查詢SQL
- Sql_從查詢的結果集中分組後取最後有效的資料成新的結果集小記(待優化)SQL優化
- UPDATE查詢結果範圍內的資料
- PLSQL Language Referenc-PL/SQL靜態SQL-帶有子查詢的查詢結果集處理SQL
- mysql查詢結果多列拼接查詢MySql
- c# combox繫結oracle查詢的資料集(列)C#Oracle
- 使用ROWNUM將導致查詢結果集的固化
- JAVA資料庫處理(連線,資料查詢,結果集返回)Java資料庫
- xsl中,對xml文件查詢的結果再次查詢XML
- Excel表格的行高與列寬Excel
- 如何分頁顯示資料庫查詢結果?資料庫
- Mybatis 查詢語句結果集總結MyBatis
- js實現的查詢表格中的資料程式碼例項JS
- excel查重是怎麼查的 excel表格怎麼查詢重複項Excel
- 動態sql查詢結果多行的處理情況SQL
- SQL語句替換查詢結果的的寫法舉例SQL
- go 如何處理資料庫返回的多結果集Go資料庫
- 如何在Excel表格中快速輸入有規則的資料Excel
- excel表格查詢功能在哪裡 excel表格怎麼快速查詢Excel
- PLSQL Language Referenc-PL/SQL靜態SQL-查詢結果集處理SQL
- 【SQL】查詢資料的方式 (二)SQL
- 【SQL】查詢資料的方式 (一)SQL
- 查詢所有資料字典的SQLSQL
- 透過union all把sql查詢的結果拼接起來SQL
- DBeaver的sql查詢結果突然不見了,怎麼辦?SQL
- 在HQL select查詢語句中自定義查詢結果返回的資料型別資料型別
- PostgreSQL函式:返回表查詢結果集SQL函式
- DBeaver 匯出多個查詢結果集
- php中mysqli處理查詢結果集的幾個方法PHPMySql
- 【ASH】如何匯出檢視DBA_HIST_ACTIVE_SESS_HISTORY的查詢結果資料
- SQL Server中基於WEB的資料庫查詢SQLServerWeb資料庫
- 使用查詢結果更新表的方法
- oracle 查詢結果的各種格式Oracle
- Oracle資料庫PL/SQL Developer查詢結果顯示問號亂碼的解決方法Oracle資料庫SQLDeveloper
- 如何刪除複製到Excel表格中的超連結Excel