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

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>
            国产精品色在线| 中日韩在线视频| 亚洲日本乱码在线观看| 国产午夜精品理论片a级探花| 欧美午夜片在线免费观看| 欧美日韩亚洲一区二区三区四区| 欧美日韩精品不卡| 国产精品v亚洲精品v日韩精品| 欧美日韩一区二区三区在线视频| 欧美日韩国产免费观看| 国产精品久久久久久影院8一贰佰| 国产精品欧美一区喷水| 国产欧美精品日韩区二区麻豆天美| 国产日韩精品视频一区二区三区| 国产一区二区三区直播精品电影| 亚洲第一精品夜夜躁人人爽| 亚洲免费激情| 亚洲尤物在线| 麻豆久久精品| 99pao成人国产永久免费视频| 亚洲影院免费观看| 裸体丰满少妇做受久久99精品| 欧美日韩国产综合新一区| 国产精品女人久久久久久| 激情成人亚洲| 亚洲一区二区三区色| 欧美亚洲综合另类| 亚洲国产欧美一区二区三区同亚洲 | 99re66热这里只有精品4| 亚洲免费视频成人| 免费亚洲一区二区| 国产精品日韩欧美大师| 亚洲韩国青草视频| 欧美在线电影| 亚洲美女中出| 榴莲视频成人在线观看| 国产精品三级久久久久久电影| 亚洲国产一区二区a毛片| 欧美一区二区三区电影在线观看| 亚洲福利专区| 久久精品人人做人人综合| 欧美日本一区| 亚洲黄色在线看| 久久亚洲高清| 午夜免费在线观看精品视频| 欧美日韩国产区| 亚洲片在线观看| 蜜桃久久av| 欧美一区二区国产| 国产精品chinese| 久久精品国产99国产精品| 国产精品av久久久久久麻豆网| 亚洲欧洲精品一区二区三区不卡 | 欧美一区免费视频| 亚洲国产欧美一区二区三区同亚洲| 欧美亚洲综合久久| 国产精品日韩二区| 亚洲小说欧美另类社区| 91久久精品国产91性色tv| 免费在线视频一区| 亚洲国产第一页| 免费在线播放第一区高清av| 久久精品99| 欧美一区二区福利在线| 99视频超级精品| 欧美激情欧美狂野欧美精品 | 亚洲国产日韩欧美| 欧美va天堂在线| 亚洲精品欧美一区二区三区| 亚洲成人在线免费| 亚洲一区尤物| 国产精品美女| 欧美一区影院| 久久不射网站| 亚洲高清不卡在线观看| 欧美黄色一区二区| 欧美片在线观看| 亚洲主播在线播放| 欧美一区国产二区| 在线精品亚洲一区二区| 亚洲电影在线播放| 欧美日韩免费一区二区三区视频 | 亚洲在线免费| 欧美在线日韩在线| 亚洲国产天堂久久国产91| 亚洲日本成人| 国产毛片一区二区| 牛牛国产精品| 国产精品video| 久久男人资源视频| 欧美韩日视频| 欧美在线视频免费| 免费在线成人av| 欧美日本一道本| 欧美制服第一页| 免费观看一级特黄欧美大片| 在线一区二区日韩| 性娇小13――14欧美| 91久久精品国产91性色tv| 亚洲视频一二区| 亚洲国内高清视频| 亚洲一区视频在线| 亚洲国产1区| 午夜在线不卡| 一区二区三区视频免费在线观看| 欧美一区二区视频网站| a4yy欧美一区二区三区| 久久aⅴ乱码一区二区三区| 日韩视频精品| 久久天天躁夜夜躁狠狠躁2022| av成人免费在线观看| 久久精品论坛| 性久久久久久久久| 欧美喷水视频| 欧美成在线观看| 国产偷自视频区视频一区二区| 亚洲精品乱码久久久久久蜜桃91| 国内外成人免费激情在线视频网站 | 久久米奇亚洲| 午夜精品视频一区| 蜜臀99久久精品久久久久久软件| 欧美亚洲日本网站| 欧美欧美在线| 亚洲人成网站777色婷婷| 一色屋精品视频在线看| 亚洲免费视频网站| 亚洲一区欧美| 欧美日本精品一区二区三区| 欧美成人福利视频| 国内免费精品永久在线视频| 亚洲欧美日本日韩| 亚洲欧美日韩中文播放| 欧美日韩一区二区三区在线看| 亚洲黄一区二区三区| 亚洲国产mv| 欧美成人激情在线| 亚洲国产精品一区在线观看不卡 | 欧美综合第一页| 国产精品自拍三区| 亚洲欧美日韩国产综合| 午夜在线a亚洲v天堂网2018| 国产精品国码视频| 一本色道久久综合| 亚洲一级免费视频| 国产精品黄页免费高清在线观看| 一区二区高清在线| 午夜视频在线观看一区二区三区| 欧美日韩一区二区在线观看视频| 99这里只有精品| 亚洲欧美日韩精品综合在线观看| 国产精品乱看| 欧美一区=区| 欧美成人69av| 欧美天天在线| 亚洲午夜高清视频| 欧美影院久久久| 伊人久久大香线蕉综合热线| 久久久久久久久一区二区| 欧美高清免费| 一区二区三区日韩在线观看| 国产精品色午夜在线观看| 欧美在线视频一区二区| 欧美14一18处毛片| 一本高清dvd不卡在线观看| 欧美午夜精品久久久久久人妖| 亚洲欧美日本日韩| 欧美刺激午夜性久久久久久久| 一本久久a久久精品亚洲| 国产精品美女午夜av| 久久久国产精彩视频美女艺术照福利 | 亚洲一级免费视频| 国产日韩欧美二区| 蜜臀久久99精品久久久久久9| 日韩视频在线观看| 久久福利影视| 日韩一区二区电影网| 国产美女精品人人做人人爽| 免费国产一区二区| 亚洲影院在线| 91久久精品国产91久久| 久久精品日产第一区二区三区 | 99在线精品视频| 国产欧美亚洲日本| 欧美黑人多人双交| 欧美一区二区三区婷婷月色| 亚洲精品视频在线播放| 久久亚洲高清| 亚洲欧美日韩国产一区二区| 亚洲激情视频在线播放| 国产视频在线观看一区二区| 欧美人成在线视频| 久久午夜影视| 午夜久久久久久| 中国日韩欧美久久久久久久久| 蜜臀久久99精品久久久画质超高清 | 国产无遮挡一区二区三区毛片日本| 欧美a级在线| 久久深夜福利免费观看| 欧美亚洲系列| 亚洲午夜精品在线|