久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何將表格的前兩列堆疊成一列,但也僅將第三

How do I stack the first two columns of a table into a single column, but also pair third column with the first column only?(如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?) - IT屋-程序員軟件開發技
本文介紹了如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我問了一個很類似的問題 之前,但這次的要求有點復雜.我有一張如下所示的表格:

I asked a very similar question earlier, but the requirements this time are a bit more complex. I have a table that looks like the following:

| id | code_1 | code_2 | pair_1 |
|----|--------|--------|--------|
|  1 |     a1 |     a2 |     b1 |
|  2 |     a3 |     a4 | (null) |
|  3 |     a5 | (null) |     b2 |
|  4 |     a6 | (null) | (null) |
|  5 | (null) |     a7 |     b3 |
|  6 | (null) |     a8 | (null) |
|  7 | (null) | (null) |     b4 |
|  8 | (null) | (null) | (null) |

我想將 code_1 和 code_2 堆疊到一個列中,可以通過使用:

I want to stack code_1 and code_2 into a single column, which can be done by using:

select id, code, pair_1 as pair
  from source
       unpivot (code for code_ in (code_1, code_2)) as unpvt;

,產生以下輸出:

| id | code |   pair |
|----|------|--------|
|  1 |   a1 |     b1 |
|  1 |   a2 |     b1 |
|  2 |   a3 | (null) |
|  2 |   a4 | (null) |
|  3 |   a5 |     b2 |
|  4 |   a6 | (null) |
|  5 |   a7 |     b3 |
|  6 |   a8 | (null) |

,但我也想捕獲 code_1pair_1 配對的條件,即每當 code 來自 code_1,它將使用pair_1中的值作為pair;并且每當 code 來自 code_2 時,它總是將 null 用于 pair.

, but I also want to capture the condition that code_1 is paired with pair_1 i.e. whenever code is sourced from code_1, it will use the value in pair_1 for pair; and whenever code is sourced from code_2, it will always use null for pair.

例如,給定原始表,目標表應如下所示:

So for example, given the original table, here is what the target table should look like:

| id | code |   pair |
|----|------|--------|
|  1 |   a1 |     b1 |
|  2 |   a2 | (null) |
|  3 |   a3 | (null) |
|  4 |   a4 | (null) |
|  5 |   a5 |     b2 |
|  6 |   a6 | (null) |
|  7 |   a7 | (null) |
|  8 |   a8 | (null) |

DDL:

http://sqlfiddle.com/#!18/743a5/16

create table source (
  id     int identity(1, 1) primary key,
  code_1 varchar(10),
  code_2 varchar(10),
  pair_1 varchar(10)
);
insert into source values
('a1', 'a2', 'b1'),
('a3', 'a4', null),
('a5', null, 'b2'),
('a6', null, null),
(null, 'a7', 'b3'),
(null, 'a8', null),
(null, null, 'b4'),
(null, null, null);


create table target (
  id   int identity(1, 1) primary key,
  code varchar(10),
  pair varchar(10)
);
insert into target values
('a1', 'b1'),
('a2', null),
('a3', null),
('a4', null),
('a5', 'b2'),
('a6', null),
('a7', null),
('a8', null);

推薦答案

你不能做簡單的UNION ALL嗎?

試試下面的查詢

SELECT * FROM
(
SELECT id, code_1 as code, pair_1 as pair FROM source WHERE code_1 IS NOT NULL
UNION ALL 
SELECT id, code_2 as code, NULL as pair FROM source WHERE code_2 IS NOT NULL
) UnionTable
ORDER BY id

這篇關于如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Converting Every Child Tags in to a Single Column with multiple Delimiters -SQL Server (3)(將每個子標記轉換為具有多個分隔符的單列-SQL Server (3))
How can I create a view from more than one table?(如何從多個表創建視圖?)
Create calculated value based on calculated value inside previous row(根據前一行內的計算值創建計算值)
Recursive t-sql query(遞歸 t-sql 查詢)
Convert Month Name to Date / Month Number (Combinations of Questions amp; Answers)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
Join instead of correlated subquery(加入而不是相關子查詢)
主站蜘蛛池模板: 一区二区三区国产在线观看 | 草草视频在线观看 | 亚洲高清在线 | 日本aⅴ中文字幕 | 91婷婷韩国欧美一区二区 | www成人免费| 欧美乱大交xxxxx另类电影 | 91国产精品 | 91精品国产综合久久婷婷香蕉 | 又黄又色 | 国产成人综合一区二区三区 | 亚洲福利一区二区 | 麻豆国产一区二区三区四区 | 国产美女特级嫩嫩嫩bbb片 | 亚洲国产精品久久久久婷婷老年 | 精久久久久 | 一区二区高清 | 免费在线一区二区 | 99精品一级欧美片免费播放 | 久久精品中文字幕 | 日韩电影中文字幕 | 欧美日韩三级 | 亚洲精品一区二区三区中文字幕 | 免费黄色片视频 | 亚洲天堂一区 | 国产福利91精品 | 亚洲欧美激情视频 | 亚洲免费在线观看av | 另类视频在线 | 国产在线拍偷自揄拍视频 | 久久伊人一区二区 | 视频1区| 午夜精品久久久久久久星辰影院 | 中文字幕在线一区 | 91中文字幕在线 | 亚洲国产欧美一区 | 天堂一区在线观看 | 久久精品视频一区二区三区 | 欧美又大粗又爽又黄大片视频 | 国产成人在线看 | 亚洲视频免费观看 |