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

Prayer

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

定義臨時集合(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語句,那它有什么用途呢?正如我們文章的標題,它是用來定義臨時集合的。

我們先來看幾個簡單的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列

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

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

執行一下,看和你想的一樣不一樣啊。之前我們說過,VALUES語句定義的是臨時集合,而我們知道集合是可以排序、分組的,那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

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

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

現在給你以下條件,讓你把姓名查出來:

部門  生日

市場部 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'); 
SELECT * FROM USER WHERE DEPARTMENT IN (1,2,3) AND BIRTHDAY IN ('1949-10-1','1978-12-18','1997-7-1');

查詢出來后發現結果不正確,因為把管理部,生日是1949-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')
);

結果發現這條語句根本就不能執行,有人可能會說沒辦法了,一條一條執行吧,如下這樣:

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';

經過漫長的等待(因為這樣效率很差),終于查出來了,結果發現怎么還有些我們不想要的內容,如:換行,甚至是DB2打印出的一些消息。基于以上缺點,聰明人想出一個好方法,新建一個表(如:temp),把以上條件導入,然后在查詢,不就可以了嗎?如下:

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

然后把條件導入到臨時表中,最后這樣查詢:

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

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

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')
);

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

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'

當你看到這的時候,本文也該結束了,你有什么啟發呢?

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

----聲明:轉載請注明出處。

----last update at 2009.9.27

----write by wave at 2009.9.25

 

本文來自CSDN博客,轉載請標明出處: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>
            亚洲综合日韩在线| 亚洲一区一卡| 日韩午夜精品视频| 久久精品视频在线| 国产女主播一区二区三区| 欧美日韩天堂| 亚洲人成艺术| 美女黄网久久| 久久精品理论片| 国产在线欧美日韩| 亚洲欧美一区二区三区久久 | 在线亚洲免费| 亚洲国产91精品在线观看| 亚洲一区影院| 国产精品久久久久久久久久久久久久 | 亚洲精品中文字幕女同| 免费精品视频| 夜夜爽夜夜爽精品视频| 亚洲精品自在久久| 欧美系列一区| 久久精品中文字幕一区| 久久久综合网站| 亚洲欧洲日本一区二区三区| 欧美韩日精品| 欧美另类视频在线| 国产精品一区二区久久国产| 久久久精品性| 久久色在线播放| 日韩一区二区精品| 亚洲主播在线播放| 在线精品福利| 亚洲乱码视频| 亚洲大片精品永久免费| 亚洲私人影院| 欧美激情久久久| 久久久久国产一区二区| 久久久蜜桃一区二区人| 亚洲精品系列| 亚洲免费在线看| 一区免费观看| 亚洲另类一区二区| 韩国三级电影一区二区| 91久久精品国产91久久性色tv| 欧美日韩精品三区| 久久久av网站| 欧美日韩精品二区| 噜噜噜噜噜久久久久久91| 欧美日韩亚洲三区| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩免费在线| 亚洲国产91| 亚洲男人的天堂在线观看| 在线观看日韩av电影| 夜夜嗨网站十八久久| 伊人狠狠色丁香综合尤物| 亚洲伦理在线免费看| 国精产品99永久一区一区| 国内精品一区二区| 日韩亚洲欧美在线观看| 欧美影院在线播放| 亚洲图片在线| 欧美激情精品久久久久久免费印度| 香蕉av777xxx色综合一区| 欧美成人精精品一区二区频| 久久视频一区二区| 国产精品免费在线| 日韩视频二区| 亚洲精品在线三区| 蜜桃久久精品乱码一区二区| 久久久精品2019中文字幕神马| 欧美午夜精品一区二区三区| 亚洲黄色成人| 91久久精品国产91性色tv| 欧美淫片网站| 久久久久国产精品一区二区| 国产精品综合av一区二区国产馆| 亚洲欧美日韩国产综合在线| 欧美精品一区二| 欧美激情按摩| 亚洲成人在线视频网站| 久久成人免费视频| 欧美一区二区在线免费观看| 牛夜精品久久久久久久99黑人 | 亚洲福利视频一区二区| 国产精品免费在线| 亚洲桃色在线一区| 亚洲欧美另类中文字幕| 欧美午夜久久久| 在线一区二区三区做爰视频网站| 夜久久久久久| 欧美日韩xxxxx| 亚洲精品视频在线播放| 99re6热只有精品免费观看| 欧美激情一区二区三区蜜桃视频| 亚洲第一免费播放区| 亚洲人成网站在线播| 欧美激情va永久在线播放| 亚洲激情av在线| 国产精品乱人伦一区二区| 一本大道久久a久久精二百| 亚洲午夜成aⅴ人片| 国产精品拍天天在线| 亚洲天堂av高清| 久久国内精品视频| 在线成人小视频| 久久久综合精品| 久久久国产精品亚洲一区| 久久综合给合久久狠狠色| 激情综合网激情| 欧美大胆成人| 一区二区三区波多野结衣在线观看| 亚洲专区一区| 国产亚洲一区二区三区| 久久人人爽人人爽爽久久| 亚洲人线精品午夜| 性8sex亚洲区入口| 激情成人av| 欧美好吊妞视频| 亚洲永久免费精品| 狂野欧美激情性xxxx欧美| 99re6热在线精品视频播放速度| 国产精品入口| 欧美 日韩 国产精品免费观看| 亚洲乱码一区二区| 久久精品中文字幕一区二区三区| 亚洲人成网站在线播| 久久国产精品一区二区| 亚洲福利视频在线| 亚洲日本欧美| 亚洲黄色大片| 国产精品高清在线观看| 欧美专区中文字幕| 亚洲精品欧美激情| 久久网站热最新地址| 亚洲欧美日韩国产综合精品二区| 新狼窝色av性久久久久久| 亚洲国产精品久久久久| 国产精品成人国产乱一区| 老司机午夜精品| 亚洲欧美日本精品| 日韩视频免费观看高清完整版| 久久精品一二三区| 亚洲深夜av| 亚洲日本精品国产第一区| 国产久一道中文一区| 欧美精品二区三区四区免费看视频| 欧美一区二区三区在线观看视频| 亚洲日本理论电影| 久久亚洲精品网站| 欧美在线资源| 亚洲视频在线观看| 在线观看视频一区| 国产精品日韩专区| 欧美日韩一区二区三区四区在线观看 | 国产三级精品三级| 欧美精品二区三区四区免费看视频| 久久精品网址| 亚洲欧美色婷婷| 亚洲午夜av| 亚洲视频在线视频| 日韩一区二区精品视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美日韩1区2区3区| 久久久久青草大香线综合精品| 亚洲综合另类| 亚洲欧美国产va在线影院| 亚洲视频在线观看网站| 中国成人亚色综合网站| 夜夜嗨av色一区二区不卡| 99精品欧美一区二区蜜桃免费| 亚洲黄色性网站| 亚洲黄色片网站| 亚洲日本中文| 欧美大秀在线观看| 欧美刺激性大交免费视频| 亚洲国产精品成人综合色在线婷婷 | 国产精品电影网站| 欧美午夜精品久久久久免费视| 欧美理论电影在线播放| 欧美久久婷婷综合色| 欧美大片在线观看一区| 性欧美1819性猛交| 在线观看91精品国产麻豆| 亚洲国产1区| 日韩视频精品| 在线午夜精品| 香蕉成人伊视频在线观看| 午夜国产一区| 久久九九精品| 免费高清在线视频一区·| 欧美freesex交免费视频| 亚洲国产va精品久久久不卡综合| 亚洲国产日韩欧美综合久久| 亚洲精品乱码久久久久久蜜桃91| 亚洲最新中文字幕| 欧美一区二区三区久久精品茉莉花 | 亚洲专区一区二区三区| 小处雏高清一区二区三区 | 亚洲国产精品女人久久久| 亚洲欧洲一区二区三区在线观看 |