青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

定義臨時(shí)集合(VALUES語句的使用)

Posted on 2010-05-18 13:27 Prayer 閱讀(307) 評論(0)  編輯 收藏 引用 所屬分類: DB2

----start

   提起VALUES語句,很多人都感覺非常陌生,哈哈,看到下面的語句,你就會恍然大悟。

INSERT INTO USER (NAME,BIRTHDAY) VALUES ('張三','2000-1-1'); 
INSERT INTO USER (NAME,BIRTHDAY) VALUES ('張三','2000-1-1');

哦,原來這就是VALUES語句啊,沒錯,這就傳說中的VALUES語句,那它有什么用途呢?正如我們文章的標(biāo)題,它是用來定義臨時(shí)集合的。

我們先來看幾個簡單的VALUES語句,如下:

VALUES 1                     --1行 1列  
VALUES 1, 2              --1行 2列  
VALUES (1), (2)       --2行 1列  
VALUES (1,2), (1,3),(2,1) --3行 2列 
VALUES 1                  --1行 1列
VALUES 1, 2              --1行 2列
VALUES (1), (2)       --2行 1列
VALUES (1,2), (1,3),(2,1) --3行 2列

是不是有點(diǎn)亂啊,那我們縷一縷,把它當(dāng)普通SQL一樣執(zhí)行一下,是不是很直觀(不要以為它只能看,可以執(zhí)行的)。那大家先猜一猜以下語句是幾行幾列呢?

VALUES ((1), (2))  
VALUES ((1,2), (1,3),(2,1)) 
VALUES ((1), (2))
VALUES ((1,2), (1,3),(2,1))

執(zhí)行一下,看和你想的一樣不一樣啊。之前我們說過,VALUES語句定義的是臨時(shí)集合,而我們知道集合是可以排序、分組的,那VALUES語句可不可以呢?你可以試一試如下語句:

---排序  
SELECT * FROM   
(  
VALUES (1,2), (2,1)  
) AS TEMP  
ORDER BY 1 DESC  
---分組  
SELECT A,COUNT(*) FROM   
(  
VALUES (1,2), (1,3),(2,1)  
) AS TEMP(A,B)  
GROUP BY A 
---排序
SELECT * FROM
(
VALUES (1,2), (2,1)
) AS TEMP
ORDER BY 1 DESC
---分組
SELECT A,COUNT(*) FROM
(
VALUES (1,2), (1,3),(2,1)
) AS TEMP(A,B)
GROUP BY A

看到這里你應(yīng)該學(xué)會了定義VALUES語句,你可能還想知道,在實(shí)際環(huán)境中,哪些情況下我們該使用VALUES語句呢?答案可能令你失望,答案就是任何需要臨時(shí)表的時(shí)候都可以。舉個簡單的例子,考慮下面的情況:

CREATE TABLE USER  
(  
NAME VARCHAR(20) NOT NULL,---姓名  
DEPARTMENT INTEGER,---部門(1、市場部   2、管理部   3、研發(fā)部)  
BIRTHDAY DATE---生日  
); 
CREATE TABLE USER
(
NAME VARCHAR(20) NOT NULL,---姓名
DEPARTMENT INTEGER,---部門(1、市場部   2、管理部   3、研發(fā)部)
BIRTHDAY DATE---生日
);

現(xiàn)在給你以下條件,讓你把姓名查出來:

部門  生日

市場部 1949-10-1

管理部       1978-12-18

研發(fā)部       1997-7-1

... ...

類似這樣的條件有很多,我們就以上面的三個條件舉例。該怎么辦呢?有些人可能會這么寫:

SELECT * FROM USER WHERE DEPARTMENT IN (1,2,3) AND BIRTHDAY IN ('1949-10-1','1978-12-18','1997-7-1'); 
SELECT * FROM USER WHERE DEPARTMENT IN (1,2,3) AND BIRTHDAY IN ('1949-10-1','1978-12-18','1997-7-1');

查詢出來后發(fā)現(xiàn)結(jié)果不正確,因?yàn)榘压芾聿浚帐?949-10-1也查出來了。既然這么處理不行,有人可能會這么寫:

SELECT * FROM USER WHERE (DEPARTMENT,BIRTHDAY) IN   
(  
(1,'1949-10-1'),  
(2,'1978-12-18'),  
(3,'1997-7-1')  
); 
SELECT * FROM USER WHERE (DEPARTMENT,BIRTHDAY) IN
(
(1,'1949-10-1'),
(2,'1978-12-18'),
(3,'1997-7-1')
);

結(jié)果發(fā)現(xiàn)這條語句根本就不能執(zhí)行,有人可能會說沒辦法了,一條一條執(zhí)行吧,如下這樣:

SELECT * FROM USER WHERE DEPARTMENT=1 and BIRTHDAY='1949-10-1';  
SELECT * FROM USER WHERE DEPARTMENT=2 and BIRTHDAY='1978-12-18';  
SELECT * FROM USER WHERE DEPARTMENT=3 and BIRTHDAY='1997-7-1'; 
SELECT * FROM USER WHERE DEPARTMENT=1 and BIRTHDAY='1949-10-1';
SELECT * FROM USER WHERE DEPARTMENT=2 and BIRTHDAY='1978-12-18';
SELECT * FROM USER WHERE DEPARTMENT=3 and BIRTHDAY='1997-7-1';

經(jīng)過漫長的等待(因?yàn)檫@樣效率很差),終于查出來了,結(jié)果發(fā)現(xiàn)怎么還有些我們不想要的內(nèi)容,如:換行,甚至是DB2打印出的一些消息。基于以上缺點(diǎn),聰明人想出一個好方法,新建一個表(如:temp),把以上條件導(dǎo)入,然后在查詢,不就可以了嗎?如下:

CREATE TABLE TEMP  
(  
DEPARTMENT INTEGER,  
BIRTHDAY DATE  
); 
CREATE TABLE TEMP
(
DEPARTMENT INTEGER,
BIRTHDAY DATE
);

然后把條件導(dǎo)入到臨時(shí)表中,最后這樣查詢:

SELECT * FROM USER WHERE (DEPARTMENT,BIRTHDAY) IN  
(  
SELECT DEPARTMENT,BIRTHDAY FROM TEMP  
); 
SELECT * FROM USER WHERE (DEPARTMENT,BIRTHDAY) IN
(
SELECT DEPARTMENT,BIRTHDAY FROM TEMP
);

除了麻煩點(diǎn),一切似乎很完美。不過,知道VALUES語句的人會說:這樣做太麻煩,不用定義持久表,用VALUES定義一個臨時(shí)的集合不就可以了,如下:

SELECT * FROM USER WHERE (DEPARTMENT,BIRTHDAY) IN   
(  
VALUES (1,'1949-10-1'),(2,'1978-12-18'),(3,'1997-7-1')  
); 
SELECT * FROM USER WHERE (DEPARTMENT,BIRTHDAY) IN
(
VALUES (1,'1949-10-1'),(2,'1978-12-18'),(3,'1997-7-1')
);

至此,我們感覺這樣做已經(jīng)很簡單了,不過,不一定,還有一種更簡單的方法,如下:

SELECT * FROM USER WHERE DEPARTMENT=1 AND BIRTHDAY='1949-10-1' 
UNION  
SELECT * FROM USER WHERE DEPARTMENT=2 AND BIRTHDAY='1978-12-18' 
UNION  
SELECT * FROM USER WHERE DEPARTMENT=3 AND BIRTHDAY='1997-7-1' 
SELECT * FROM USER WHERE DEPARTMENT=1 AND BIRTHDAY='1949-10-1'
UNION
SELECT * FROM USER WHERE DEPARTMENT=2 AND BIRTHDAY='1978-12-18'
UNION
SELECT * FROM USER WHERE DEPARTMENT=3 AND BIRTHDAY='1997-7-1'

當(dāng)你看到這的時(shí)候,本文也該結(jié)束了,你有什么啟發(fā)呢?

---更多參見:DB2 SQL 精要

----聲明:轉(zhuǎn)載請注明出處。

----last update at 2009.9.27

----write by wave at 2009.9.25

 

本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/shangboerds/archive/2009/09/25/4594790.aspx

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            另类人畜视频在线| 性色av一区二区三区红粉影视| 美日韩精品免费| 午夜精品www| 亚洲欧美不卡| 午夜宅男久久久| 亚洲欧美在线免费观看| av成人手机在线| 亚洲一区二区三区视频播放| 一区二区三区免费看| 在线中文字幕日韩| 午夜久久久久| 久久精品中文字幕一区二区三区| 久久精品视频免费| 另类图片国产| 欧美在线播放视频| 久久国产精品一区二区三区四区| 久久成人精品| 免费日韩av| 亚洲免费电影在线| 性高湖久久久久久久久| 老司机精品福利视频| 国产精品久久久久77777| 国产一区成人| 日韩午夜在线视频| 久久精品电影| 亚洲精品视频一区二区三区| 亚洲在线观看视频网站| 久久综合狠狠| 国产欧亚日韩视频| 亚洲国产视频一区| 午夜精品久久久久久久久 | 国产在线不卡| 一区二区三区四区国产| 久久久xxx| aa成人免费视频| 久久这里有精品视频| 国产精品二区在线| 亚洲欧洲精品一区二区| 久久精品国产精品亚洲精品| 亚洲三级视频在线观看| 亚洲精品中文字| 久久青草福利网站| 国产精品亚洲不卡a| 亚洲免费观看高清在线观看| 欧美在线网站| 亚洲性感美女99在线| 欧美国产在线观看| 狠狠色伊人亚洲综合成人| 亚洲一级在线观看| 亚洲缚视频在线观看| 久久国产精品亚洲va麻豆| 国产精品久久国产精麻豆99网站| 亚洲区一区二区三区| 久久久亚洲人| 亚洲自拍偷拍色片视频| 欧美三级日本三级少妇99| 最新成人av在线| 蜜桃av噜噜一区| 欧美在线视频网站| 国产欧美精品在线播放| 亚洲综合欧美日韩| 中文高清一区| 一本一道久久综合狠狠老精东影业 | 麻豆freexxxx性91精品| 国产日韩欧美一区二区三区四区| 亚洲深夜激情| 中文网丁香综合网| 国产精品久久午夜夜伦鲁鲁| 亚洲天堂久久| 亚洲一区二区免费视频| 国产精品久久久久久久久久三级| 亚洲一本大道在线| 91久久精品美女高潮| 免费久久99精品国产| 亚洲欧洲在线视频| 亚洲黄色成人网| 欧美日韩一区二区欧美激情| 亚洲宅男天堂在线观看无病毒| 亚洲精品小视频在线观看| 欧美日精品一区视频| 亚洲永久免费精品| 午夜在线观看免费一区| 国内精品国产成人| 亚洲第一综合天堂另类专| 欧美精品在线看| 午夜精品一区二区三区四区| 久久久国产一区二区| 亚洲激情综合| 亚洲午夜成aⅴ人片| 国产欧美日韩中文字幕在线| 老鸭窝毛片一区二区三区 | 久久天天躁狠狠躁夜夜爽蜜月| 欧美一区二区三区精品电影| 国内一区二区在线视频观看| 欧美激情视频网站| 欧美视频一区二区三区| 久久久午夜精品| 欧美精品久久久久久久久久| 亚洲欧洲99久久| 久久夜色精品国产亚洲aⅴ| 一本色道久久99精品综合| 亚洲午夜在线| 91久久精品国产91性色| 亚洲欧美电影在线观看| 亚洲精品视频中文字幕| 亚洲一区美女视频在线观看免费| 影音先锋亚洲精品| 在线视频免费在线观看一区二区| 一区二区三区在线高清| 一区二区三区欧美视频| 亚洲黄色精品| 欧美在线播放| 亚洲欧美中文日韩v在线观看| 欧美aⅴ一区二区三区视频| 先锋a资源在线看亚洲| 欧美成人免费全部观看天天性色| 亚洲欧洲99久久| 欧美日本二区| 亚洲国产精品电影在线观看| 亚洲天堂av综合网| 亚洲国产婷婷综合在线精品 | 欧美精品1区| 久久综合伊人77777蜜臀| 国产精品五月天| 一二三区精品| 亚洲午夜电影| 欧美久久一级| 亚洲国产欧美久久| 91久久中文| 久久综合九九| 免费国产自线拍一欧美视频| 好吊视频一区二区三区四区| 国产乱码精品| 亚洲国产精品电影在线观看| 亚洲第一精品影视| 久久综合九色综合久99| 欧美电影免费网站| 亚洲欧洲一区二区在线播放| 欧美成人免费小视频| 亚洲激情视频网| av成人动漫| 欧美午夜精彩| 亚洲欧美韩国| 乱码第一页成人| 亚洲人精品午夜| 欧美精品久久99| 亚洲一区二区三区久久| 久久精品二区| 亚洲激情电影在线| 欧美精品久久99| 这里只有精品电影| 欧美在线不卡| 亚洲国产成人高清精品| 欧美激情视频网站| 国产精品99久久久久久久久 | 欧美成人精品一区| 亚洲国产精品国自产拍av秋霞| 久久久夜精品| 亚洲一区二区精品在线| 国产精品www| 亚洲欧美日韩一区二区| 久久综合色天天久久综合图片| 国内成+人亚洲| 久久gogo国模啪啪人体图| 久久久久久综合网天天| 亚洲狼人综合| 欧美色中文字幕| 亚洲愉拍自拍另类高清精品| 欧美在线你懂的| 国产一区二区三区直播精品电影| 午夜精品成人在线视频| 久久久久久穴| 亚洲国内欧美| 欧美三级日本三级少妇99| 91久久中文| 欧美在线免费| 欧美视频专区一二在线观看| 亚洲女优在线| 男女精品网站| 一区二区三区www| 国产精品成人在线| 亚洲精选一区二区| 欧美在线观看一区| 在线观看欧美视频| 亚洲美女福利视频网站| 亚洲男人影院| 亚洲电影下载| 欧美视频一区在线| 久久精品视频免费播放| 亚洲成人在线网| 亚洲国产免费| 国产视频一区在线观看一区免费 | 久久国产欧美日韩精品| 亚洲经典在线看| 国产精品免费区二区三区观看| 久久国产乱子精品免费女 | 欧美14一18处毛片| 亚洲第一色中文字幕| 久久一日本道色综合久久|