日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

SQL语句的强大综合集锦

發(fā)布時(shí)間:2023/12/3 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL语句的强大综合集锦 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.



--語(yǔ)?句????????????????????????????????功?能
--數(shù)據(jù)操作
SELECT??????--從數(shù)據(jù)庫(kù)表中檢索數(shù)據(jù)行和列
INSERT??????--向數(shù)據(jù)庫(kù)表添加新數(shù)據(jù)行
DELETE??????--從數(shù)據(jù)庫(kù)表中刪除數(shù)據(jù)行
UPDATE??????--更新數(shù)據(jù)庫(kù)表中的數(shù)據(jù)
--數(shù)據(jù)定義
CREATE?TABLE????--創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表
DROP?TABLE?????--從數(shù)據(jù)庫(kù)中刪除表
ALTER?TABLE?????--修改數(shù)據(jù)庫(kù)表結(jié)構(gòu)
CREATE?VIEW?????--創(chuàng)建一個(gè)視圖
DROP?VIEW?????--從數(shù)據(jù)庫(kù)中刪除視圖
CREATE?INDEX????--為數(shù)據(jù)庫(kù)表創(chuàng)建一個(gè)索引
DROP?INDEX?????--從數(shù)據(jù)庫(kù)中刪除索引
CREATE?PROCEDURE???--創(chuàng)建一個(gè)存儲(chǔ)過程
DROP?PROCEDURE????--從數(shù)據(jù)庫(kù)中刪除存儲(chǔ)過程
CREATE?TRIGGER????--創(chuàng)建一個(gè)觸發(fā)器
DROP?TRIGGER????--從數(shù)據(jù)庫(kù)中刪除觸發(fā)器
CREATE?SCHEMA????--向數(shù)據(jù)庫(kù)添加一個(gè)新模式
DROP?SCHEMA?????--從數(shù)據(jù)庫(kù)中刪除一個(gè)模式
CREATE?DOMAIN????--創(chuàng)建一個(gè)數(shù)據(jù)值域
ALTER?DOMAIN????--改變域定義
DROP?DOMAIN?????--從數(shù)據(jù)庫(kù)中刪除一個(gè)域
--數(shù)據(jù)控制
GRANT??????--授予用戶訪問權(quán)限
DENY??????--拒絕用戶訪問
REVOKE??????--解除用戶訪問權(quán)限
--事務(wù)控制
COMMIT??????--結(jié)束當(dāng)前事務(wù)
ROLLBACK?????--中止當(dāng)前事務(wù)
SET?TRANSACTION????--定義當(dāng)前事務(wù)數(shù)據(jù)訪問特征
--程序化SQL
DECLARE??????--為查詢?cè)O(shè)定游標(biāo)
EXPLAN??????--為查詢描述數(shù)據(jù)訪問計(jì)劃
OPEN??????--檢索查詢結(jié)果打開一個(gè)游標(biāo)
FETCH??????--檢索一行查詢結(jié)果
CLOSE??????--關(guān)閉游標(biāo)
PREPARE??????--為動(dòng)態(tài)執(zhí)行準(zhǔn)備SQL?語(yǔ)句
EXECUTE??????--動(dòng)態(tài)地執(zhí)行SQL?語(yǔ)句
DESCRIBE?????--描述準(zhǔn)備好的查詢


?

---局部變量
declare?@id?char(10)
--set?@id?=?'10010001'
select?@id?=?'10010001'


?

---全局變量
---必須以@@開頭


?

--IF?ELSE
declare?@x?int?@y?int?@z?int
select?@x?=?1?@y?=?2?@z=3
if?@x?>?@y
print?'x?>?y'?--打印字符串'x?>?y'
else?if?@y?>?@z
print?'y?>?z'
else?print?'z?>?y'


?

--CASE
use?pangu
update?employee
set?e_wage?=
case
??when?job_level?=?’1’?then?e_wage*1.08
??when?job_level?=?’2’?then?e_wage*1.07
??when?job_level?=?’3’?then?e_wage*1.06
??else?e_wage*1.05
end


?

--WHILE?CONTINUE?BREAK
declare?@x?int?@y?int?@c?int
select?@x?=?1?@y=1
while?@x?<?3
begin
??print?@x?--打印變量x?的值
??while?@y?<?3
???begin
????select?@c?=?100*@x?+?@y
????print?@c?--打印變量c?的值
????select?@y?=?@y?+?1
???end
??select?@x?=?@x?+?1
??select?@y?=?1
end


?

--WAITFOR
--例?等待1?小時(shí)2?分零3?秒后才執(zhí)行SELECT?語(yǔ)句
waitfor?delay?’01:02:03’
select?*?from?employee
--例?等到晚上11?點(diǎn)零8?分后才執(zhí)行SELECT?語(yǔ)句
waitfor?time?’23:08:00’
select?*?from?employee


?

***SELECT***


?

???select?*(列名)?from?table_name(表名)?where?column_name?operator?value
???ex:(宿主)
??select?*?from?stock_information?where?stockid???=?str(nid)
?????stockname?=?'str_name'?
?????stockname?like?'%?find?this?%'?
?????stockname?like?'[a-zA-Z]%'?---------?([]指定值的范圍)
?????stockname?like?'[^F-M]%'???---------?(^排除指定范圍)
?????---------?只能在使用like關(guān)鍵字的where子句中使用通配符)
?????or?stockpath?=?'stock_path'
?????or?stocknumber?<?1000
?????and?stockindex?=?24
?????not?stock***?=?'man'
?????stocknumber?between?20?and?100
?????stocknumber?in(10,20,30)
?????order?by?stockid?desc(asc)?---------?排序,desc-降序,asc-升序
?????order?by?1,2?---------?by列號(hào)
?????stockname?=?(select?stockname?from?stock_information??where?stockid??=?4)
?????---------?子查詢
?????---------?除非能確保內(nèi)層select只返回一個(gè)行的值,
?????---------?否則應(yīng)在外層where子句中用一個(gè)in限定符
??select?distinct?column_name?form?table_name?---------?distinct指定檢索獨(dú)有的列值,不重復(fù)
??select?stocknumber?,"stocknumber?+?10"?=?stocknumber?+?10?from?table_name
??select?stockname?,?"stocknumber"?=?count(*)?from?table_name?group?by?stockname
??????????????????????????????????????---------?group?by?將表按行分組,指定列中有相同的值
??????????having?count(*)?=?2??---------??having選定指定的組
????????
??select?*?
??from?table1,?table2??????????????????
??where?table1.id?*=?table2.id?--------?左外部連接,table1中有的而table2中沒有得以null表示
?????table1.id?=*?table2.id?--------?右外部連接?


?

??select?stockname?from?table1
??union?[all]??-----??union合并查詢結(jié)果集,all-保留重復(fù)行
??select?stockname?from?table2


?

***insert***


?

??insert?into?table_name?(Stock_name,Stock_number)?value?("xxx","xxxx")
??????????????value?(select?Stockname?,?Stocknumber?from?Stock_table2)---value為select語(yǔ)句


?

***update***


?

??update?table_name?set?Stockname?=?"xxx"?[where?Stockid?=?3]
?????????Stockname?=?default
?????????Stockname?=?null
?????????Stocknumber?=?Stockname?+?4


?

***delete***


?

??delete?from?table_name?where?Stockid?=?3
??truncate?table_name?-----------?刪除表中所有行,仍保持表的完整性
??drop?table?table_name?---------------?完全刪除表


?

***alter?table***?---?修改數(shù)據(jù)庫(kù)表結(jié)構(gòu)


?

??alter?table?database.owner.table_name?add?column_name?char(2)?null?.....
??sp_help?table_name?----?顯示表已有特征
??create?table?table_name?(name?char(20),?age?smallint,?lname?varchar(30))
??insert?into?table_name?select?.........?-----?實(shí)現(xiàn)刪除列的方法(創(chuàng)建新表)
??alter?table?table_name?drop?constraint?Stockname_default?----?刪除Stockname的default約束
????
***function(/*常用函數(shù)*/)***


?

----統(tǒng)計(jì)函數(shù)----
AVG????--求平均值
COUNT???--統(tǒng)計(jì)數(shù)目
MAX????--求最大值
MIN????--求最小值
SUM????--求和


?

--AVG
use?pangu
select?avg(e_wage)?as?dept_avgWage
from?employee
group?by?dept_id


?

--MAX
--求工資最高的員工姓名
use?pangu
select?e_name
from?employee
where?e_wage?=
(select?max(e_wage)
??from?employee)


?

--STDEV()
--STDEV()函數(shù)返回表達(dá)式中所有數(shù)據(jù)的標(biāo)準(zhǔn)差


?

--STDEVP()
--STDEVP()函數(shù)返回總體標(biāo)準(zhǔn)差


?

--VAR()
--VAR()函數(shù)返回表達(dá)式中所有值的統(tǒng)計(jì)變異數(shù)


?

--VARP()
--VARP()函數(shù)返回總體變異數(shù)


?

----算術(shù)函數(shù)----


?

/***三角函數(shù)***/
SIN(float_expression)?--返回以弧度表示的角的正弦
COS(float_expression)?--返回以弧度表示的角的余弦
TAN(float_expression)?--返回以弧度表示的角的正切
COT(float_expression)?--返回以弧度表示的角的余切
/***反三角函數(shù)***/
ASIN(float_expression)?--返回正弦是FLOAT?值的以弧度表示的角
ACOS(float_expression)?--返回余弦是FLOAT?值的以弧度表示的角
ATAN(float_expression)?--返回正切是FLOAT?值的以弧度表示的角
ATAN2(float_expression1,float_expression2)?
????????--返回正切是float_expression1?/float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
???????????????????????--把弧度轉(zhuǎn)換為角度返回與表達(dá)式相同的數(shù)據(jù)類型可為
????????--INTEGER/MONEY/REAL/FLOAT?類型
RADIANS(numeric_expression)?--把角度轉(zhuǎn)換為弧度返回與表達(dá)式相同的數(shù)據(jù)類型可為
????????--INTEGER/MONEY/REAL/FLOAT?類型
EXP(float_expression)??--返回表達(dá)式的指數(shù)值
LOG(float_expression)??--返回表達(dá)式的自然對(duì)數(shù)值
LOG10(float_expression)--返回表達(dá)式的以10?為底的對(duì)數(shù)值
SQRT(float_expression)?--返回表達(dá)式的平方根
/***取近似值函數(shù)***/
CEILING(numeric_expression)??--返回>=表達(dá)式的最小整數(shù)返回的數(shù)據(jù)類型與表達(dá)式相同可為
????????--INTEGER/MONEY/REAL/FLOAT?類型
FLOOR(numeric_expression)????--返回<=表達(dá)式的最小整數(shù)返回的數(shù)據(jù)類型與表達(dá)式相同可為
????????--INTEGER/MONEY/REAL/FLOAT?類型
ROUND(numeric_expression)????--返回以integer_expression?為精度的四舍五入值返回的數(shù)據(jù)
????????--類型與表達(dá)式相同可為INTEGER/MONEY/REAL/FLOAT?類型
ABS(numeric_expression)??????--返回表達(dá)式的絕對(duì)值返回的數(shù)據(jù)類型與表達(dá)式相同可為
????????--INTEGER/MONEY/REAL/FLOAT?類型
SIGN(numeric_expression)?????--測(cè)試參數(shù)的正負(fù)號(hào)返回0?零值1?正數(shù)或-1?負(fù)數(shù)返回的數(shù)據(jù)類型
????????--與表達(dá)式相同可為INTEGER/MONEY/REAL/FLOAT?類型
PI()???????--返回值為π?即3.1415926535897936
RAND([integer_expression])???--用任選的[integer_expression]做種子值得出0-1?間的隨機(jī)浮點(diǎn)數(shù)


?


----字符串函數(shù)----
ASCII()?????????--函數(shù)返回字符表達(dá)式最左端字符的ASCII?碼值
CHAR()???--函數(shù)用于將ASCII?碼轉(zhuǎn)換為字符
????--如果沒有輸入0?~?255?之間的ASCII?碼值CHAR?函數(shù)會(huì)返回一個(gè)NULL?值
LOWER()???--函數(shù)把字符串全部轉(zhuǎn)換為小寫
UPPER()???--函數(shù)把字符串全部轉(zhuǎn)換為大寫
STR()???--函數(shù)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)
LTRIM()???--函數(shù)把字符串頭部的空格去掉
RTRIM()???--函數(shù)把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING()??--函數(shù)返回部分字符串
CHARINDEX(),PATINDEX()??--函數(shù)返回字符串中某個(gè)指定的子串出現(xiàn)的開始位置
SOUNDEX()??--函數(shù)返回一個(gè)四位字符碼?
????--SOUNDEX函數(shù)可用來(lái)查找聲音相似的字符串但SOUNDEX函數(shù)對(duì)數(shù)字和漢字均只返回0?值?????
DIFFERENCE()????--函數(shù)返回由SOUNDEX?函數(shù)返回的兩個(gè)字符表達(dá)式的值的差異
????--0?兩個(gè)SOUNDEX?函數(shù)返回值的第一個(gè)字符不同
????--1?兩個(gè)SOUNDEX?函數(shù)返回值的第一個(gè)字符相同
????--2?兩個(gè)SOUNDEX?函數(shù)返回值的第一二個(gè)字符相同
????--3?兩個(gè)SOUNDEX?函數(shù)返回值的第一二三個(gè)字符相同
????--4?兩個(gè)SOUNDEX?函數(shù)返回值完全相同
???????????????????????????????????????


?

QUOTENAME()??--函數(shù)返回被特定字符括起來(lái)的字符串
/*select?quotename('abc',?'{')?quotename('abc')
運(yùn)行結(jié)果如下
----------------------------------{
{abc}?[abc]*/


?

REPLICATE()?????--函數(shù)返回一個(gè)重復(fù)character_expression?指定次數(shù)的字符串
/*select?replicate('abc',?3)?replicate(?'abc',?-2)
運(yùn)行結(jié)果如下
-----------?-----------
abcabcabc?NULL*/


?

REVERSE()???????--函數(shù)將指定的字符串的字符排列順序顛倒
REPLACE()???????--函數(shù)返回被替換了指定子串的字符串
/*select?replace('abc123g',?'123',?'def')
運(yùn)行結(jié)果如下
-----------?-----------
abcdefg*/


?

SPACE()???--函數(shù)返回一個(gè)有指定長(zhǎng)度的空白字符串
STUFF()???--函數(shù)用另一子串替換字符串指定位置長(zhǎng)度的子串


?


----數(shù)據(jù)類型轉(zhuǎn)換函數(shù)----
CAST()?函數(shù)語(yǔ)法如下
CAST()?(<expression>?AS?<data_?type>[?length?])
CONVERT()?函數(shù)語(yǔ)法如下
CONVERT()?(<data_?type>[?length?],?<expression>?[,?style])


?

select?cast(100+99?as?char)?convert(varchar(12),?getdate())
運(yùn)行結(jié)果如下
------------------------------?------------
199???Jan?15?2000


?

----日期函數(shù)----
DAY()???--函數(shù)返回date_expression?中的日期值
MONTH()???--函數(shù)返回date_expression?中的月份值
YEAR()???--函數(shù)返回date_expression?中的年份值
DATEADD(<datepart>?,<number>?,<date>)?
????--函數(shù)返回指定日期date?加上指定的額外日期間隔number?產(chǎn)生的新日期
DATEDIFF(<datepart>?,<number>?,<date>)
????--函數(shù)返回兩個(gè)指定日期在datepart?方面的不同之處
DATENAME(<datepart>?,?<date>)??--函數(shù)以字符串的形式返回日期的指定部分
DATEPART(<datepart>?,?<date>)??--函數(shù)以整數(shù)值的形式返回日期的指定部分
GETDATE()??--函數(shù)以DATETIME?的缺省格式返回系統(tǒng)當(dāng)前的日期和時(shí)間


?

----系統(tǒng)函數(shù)----
APP_NAME()??????--函數(shù)返回當(dāng)前執(zhí)行的應(yīng)用程序的名稱
COALESCE()??--函數(shù)返回眾多表達(dá)式中第一個(gè)非NULL?表達(dá)式的值
COL_LENGTH(<'table_name'>,?<'column_name'>)?--函數(shù)返回表中指定字段的長(zhǎng)度值
COL_NAME(<table_id>,?<column_id>)???--函數(shù)返回表中指定字段的名稱即列名
DATALENGTH()?--函數(shù)返回?cái)?shù)據(jù)表達(dá)式的數(shù)據(jù)的實(shí)際長(zhǎng)度
DB_ID(['database_name'])?--函數(shù)返回?cái)?shù)據(jù)庫(kù)的編號(hào)
DB_NAME(database_id)??--函數(shù)返回?cái)?shù)據(jù)庫(kù)的名稱
HOST_ID()?????--函數(shù)返回服務(wù)器端計(jì)算機(jī)的名稱
HOST_NAME()?????--函數(shù)返回服務(wù)器端計(jì)算機(jī)的名稱
IDENTITY(<data_type>[,?seed?increment])?[AS?column_name])
--IDENTITY()?函數(shù)只在SELECT?INTO?語(yǔ)句中使用用于插入一個(gè)identity?column列到新表中
/*select?identity(int,?1,?1)?as?column_name
into?newtable
from?oldtable*/
ISDATE()??--函數(shù)判斷所給定的表達(dá)式是否為合理日期
ISNULL(<check_expression>,?<replacement_value>)?--函數(shù)將表達(dá)式中的NULL?值用指定值替換
ISNUMERIC()??--函數(shù)判斷所給定的表達(dá)式是否為合理的數(shù)值
NEWID()???--函數(shù)返回一個(gè)UNIQUEIDENTIFIER?類型的數(shù)值
NULLIF(<expression1>,?<expression2>)
--NULLIF?函數(shù)在expression1?與expression2?相等時(shí)返回NULL?值若不相等時(shí)則返回expression1?的值
精妙SQL語(yǔ)句
說(shuō)明:復(fù)制表(只復(fù)制結(jié)構(gòu),源表名:a?新表名:b)
SQL:?select?*?into?b?from?a?where?1<>1
說(shuō)明:拷貝表(拷貝數(shù)據(jù),源表名:a?目標(biāo)表名:b)
SQL:?insert?into?b(a,?b,?c)?select?d,e,f?from?b;
說(shuō)明:顯示文章、提交人和最后回復(fù)時(shí)間
SQL:?select?a.title,a.username,b.adddate?from?table?a,(select?max(adddate)?adddate?from?table?where?table.title=a.title)?b
說(shuō)明:外連接查詢(表名1:a?表名2:b)
SQL:?select?a.a,?a.b,?a.c,?b.c,?b.d,?b.f?from?a?LEFT?OUT?JOIN?b?ON?a.a?=?b.c
說(shuō)明:日程安排提前五分鐘提醒
SQL:?select?*?from?日程安排?where?datediff('minute',f開始時(shí)間,getdate())>5

說(shuō)明:兩張關(guān)聯(lián)表,刪除主表中已經(jīng)在副表中沒有的信息
SQL:?
delete?from?info?where?not?exists?(?select?*?from?infobz?where?info.infid=infobz.infid?)?
說(shuō)明:--
SQL:?
SELECT?A.NUM,?A.NAME,?B.UPD_DATE,?B.PREV_UPD_DATE
FROM?TABLE1,?
(SELECT?X.NUM,?X.UPD_DATE,?Y.UPD_DATE?PREV_UPD_DATE
FROM?(SELECT?NUM,?UPD_DATE,?INBOUND_QTY,?STOCK_ONHAND
FROM?TABLE2
WHERE?TO_CHAR(UPD_DATE,'YYYY/MM')?=?TO_CHAR(SYSDATE,?'YYYY/MM'))?X,?
(SELECT?NUM,?UPD_DATE,?STOCK_ONHAND
FROM?TABLE2
WHERE?TO_CHAR(UPD_DATE,'YYYY/MM')?=?
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,?'YYYY/MM')?||?'/01','YYYY/MM/DD')?-?1,?'YYYY/MM')?)?Y,?
WHERE?X.NUM?=?Y.NUM?(+)
AND?X.INBOUND_QTY?+?NVL(Y.STOCK_ONHAND,0)?<>?X.STOCK_ONHAND?)?B
WHERE?A.NUM?=?B.NUM
說(shuō)明:--
SQL:?
select?*?from?studentinfo?where?not?exists(select?*?from?student?where?studentinfo.id=student.id)?and?系名稱='"&strdepartmentname&"'?and?專業(yè)名稱='"&strprofessionname&"'?order?by?性別,生源地,高考總成績(jī)
說(shuō)明:
從數(shù)據(jù)庫(kù)中去一年的各單位電話費(fèi)統(tǒng)計(jì)(電話費(fèi)定額賀電化肥清單兩個(gè)表來(lái)源)
SQL:?
SELECT?a.userper,?a.tel,?a.standfee,?TO_CHAR(a.telfeedate,?'yyyy')?AS?telyear,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'01',?a.factration))?AS?JAN,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'02',?a.factration))?AS?FRI,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'03',?a.factration))?AS?MAR,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'04',?a.factration))?AS?APR,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'05',?a.factration))?AS?MAY,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'06',?a.factration))?AS?JUE,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'07',?a.factration))?AS?JUL,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'08',?a.factration))?AS?AGU,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'09',?a.factration))?AS?SEP,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'10',?a.factration))?AS?OCT,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'11',?a.factration))?AS?NOV,
SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'12',?a.factration))?AS?DEC
FROM?(SELECT?a.userper,?a.tel,?a.standfee,?b.telfeedate,?b.factration
FROM?TELFEESTAND?a,?TELFEE?b
WHERE?a.tel?=?b.telfax)?a
GROUP?BY?a.userper,?a.tel,?a.standfee,?TO_CHAR(a.telfeedate,?'yyyy')
說(shuō)明:四表聯(lián)查問題:
SQL:?select?*?from?a?left?inner?join?b?on?a.a=b.b?right?inner?join?c?on?a.a=c.c?inner?join?d?on?a.a=d.d?where?.....
說(shuō)明:得到表中最小的未使用的ID號(hào)
SQL:
SELECT?(CASE?WHEN?EXISTS(SELECT?*?FROM?Handle?b?WHERE?b.HandleID?=?1)?THEN?MIN(HandleID)?+?1?ELSE?1?END)?as?HandleID
FROM?Handle
WHERE?NOT?HandleID?IN?(SELECT?a.HandleID?-?1?FROM?Handle?a)

:?我在ms?sql中建了一個(gè)表,可由于種種原因有些記錄重復(fù)了
:?記錄完全的一模一樣。
:?現(xiàn)在我想把重復(fù)的都刪掉,只保留重復(fù)記錄中的第一條。
:?我在database好象看到有介紹oracle的,


select?distinct?*?into?#table_name?from?table_name
delete?from?table_name
select?*?into?table_name?from?#table_name
drop?table?#table_name

與此相關(guān)的是“select?into”選項(xiàng),可以在數(shù)據(jù)庫(kù)屬性
對(duì)話框中,勾起來(lái)此項(xiàng),或者在Query?Analyzer中執(zhí)行
execute?sp_dboption?'db_name','select?into','true'
開啟。默認(rèn)值是關(guān)閉的。
?
主  題:專貼揭示SQL語(yǔ)句,貼出你的精妙SQL,歡迎來(lái)?yè)尫?
作  者:csdntoll?(低調(diào)慣了)?
等  級(jí):?
信?譽(yù)?值:147
所屬論壇:Web?開發(fā)?ASP
問題點(diǎn)數(shù):200
回復(fù)次數(shù):260
發(fā)表時(shí)間:2003-3-18?18:02:24
格式
說(shuō)明:復(fù)制表(只復(fù)制結(jié)構(gòu),源表名:a?新表名:b)
SQL:?select?*?into?b?from?a?where?1<>1

回復(fù)人:?LuoGD(沃適)?(?)?信譽(yù):100?2003-3-18?18:07:37?得分:5

說(shuō)明:拷貝表(拷貝數(shù)據(jù),源表名:a?目標(biāo)表名:b)
insert?into?b(a,?b,?c)?select?d,e,f?from?b;

Top
回復(fù)人:?LuoGD(沃適)?(?)?信譽(yù):100?2003-3-18?18:09:37?得分:5

說(shuō)明:合并數(shù)據(jù)(表名1:a?表名2:b)
select?a,b,c?from?a?union?select?d,e,f?from?b;

Top
回復(fù)人:?LuoGD(沃適)?(?)?信譽(yù):100?2003-3-18?18:11:36?得分:5

說(shuō)明:子查詢(表名1:a?表名2:b)
select?a,b,c?from?a?where?a?IN?(select?d?from?b?)
或者:
select?a,b,c?from?a?where?a?IN?(1,2,3)

Top
回復(fù)人:?_TMG_(Alan)?(?)?信譽(yù):120?2003-3-18?18:11:55?得分:0

這都是精妙?

Top
回復(fù)人:?junsisi(君三思)?(?)?信譽(yù):100?2003-3-18?18:12:36?得分:5

俺來(lái)貼個(gè)讓俺對(duì)sql茅塞頓開的例子
說(shuō)明:顯示文章、提交人和最后回復(fù)時(shí)間
sql:select?a.title,a.username,b.adddate?from?table?a,(select?max(adddate)?adddate?from?table?where?table.title=a.title)?b

Top
回復(fù)人:?LuoGD(沃適)?(?)?信譽(yù):100?2003-3-18?18:13:48?得分:0

說(shuō)明:外連接查詢(表名1:a?表名2:b)
select?a.a,?a.b,?a.c,?b.c,?b.d,?b.f?from?a?LEFT?OUT?JOIN?b?ON?a.a?=?b.c

Top
回復(fù)人:?LuoGD(沃適)?(?)?信譽(yù):100?2003-3-18?18:15:56?得分:0

說(shuō)明:在線視圖查詢(表名1:a?)
select?*?from?(SELECT?a,b,c?FROM?a)?T?where?t.a?>?1;

Top
回復(fù)人:?gcs925(Study?Java&Jsp?ing)?(?)?信譽(yù):105?2003-3-18?18:16:00?得分:0

mark

Top
回復(fù)人:?net_lover(孟子E章)?(?)?信譽(yù):727?2003-3-18?18:16:14?得分:0

SQL:SELECT?NEWID()

Top
回復(fù)人:?snakegod(蛇姬)?(?)?信譽(yù):100?2003-3-18?21:49:41?得分:0

????
沒有深度?沒興趣

Top
回復(fù)人:?_TMG_(Alan)?(?)?信譽(yù):120?2003-3-18?21:54:21?得分:0

我寧愿用數(shù)據(jù)庫(kù)冗余也不會(huì)使用子查詢,除非萬(wàn)不得已

Top
回復(fù)人:?nittystone(沒有想法)?(?)?信譽(yù):115?2003-3-18?22:20:49?得分:5

自連接取出榮于數(shù)據(jù)
把所有姓名相同的只取出一個(gè)
select?a.name?from?table_name?a?where?a.id?in?
(select?b.id?from?table_name?b?where?a.id<>b.id)
同理刪除榮譽(yù)數(shù)據(jù)
delete?from?table_name??where?table_name.id?in?
(select?b.id?from?table_name?b?where?table_name.id<>b.id)

Top
回復(fù)人:?allforly(白衣勝血)?(?)?信譽(yù):126?2003-3-19?1:18:29?得分:0

今天開眼界了啊,我就會(huì)select?*?from?**?where?**=**這一句

Top
回復(fù)人:?gddd(gddd)?(?)?信譽(yù):100?2003-3-19?2:07:30?得分:0

利害...我會(huì)多一句
select?top?n?*?form?**?where?XXX

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-19?9:22:40?得分:0

不錯(cuò),不錯(cuò),
蠻喜歡junsisi(君三思)的這句:
select?a.title,a.username,b.adddate?from?table?a,(select?max(adddate)?adddate?from?table?where?table.title=a.title)?b
對(duì)net_lover(孟子E章)前輩,這句不理解,我菜,呵呵
SQL:SELECT?NEWID()

Top
回復(fù)人:?cpp2017(幕白兄)?(?)?信譽(yù):145?2003-3-19?9:27:39?得分:0

SELECT?DISTINCT?TSD.Time_Sheet_Dtl_Record_No,TSD.User_Record_No,TP.Period_Start_Date?,TP.Period_End_Date?INTO?#temp?FROM?Time_Sheet_Details?TSD,?Time_Sheet_Period?TP?,User_Group_User_Relationship?UGUR,User_Group_Master?UGM?,User_Data_Access_Right?UDAR?WHERE?TSD.status?='TS_WFMGRA'?AND?DATEDIFF(dd,TP.period_start_date,TSD.work_Date)>=0?AND?DATEDIFF(dd,TP.period_end_date,TSD.work_Date)<=0?AND?UGUR.User_Record_No?=?TSD.User_Record_No?AND?UGM.User_Group_Record_No=UGUR.User_Group_Record_No?AND?UGM.User_Group_Name?IN('Technician','Engineer')?AND?UDAR.User_Record_No?=?TSD.User_Record_No?AND?UDAR.Division_Record_No?IN(1)?SELECT?DISTINCT?A.User_Record_No,?B.Staff_No,?B.Full_Name,B.Job_Title,?SUM(working_hour)?AS?Working_Hours,SUM(ot)?AS?OT_HOURS,?C.Period_Start_Date,C.Period_End_Date?INTO?#temp2?FROM?Time_Sheet_Details?A?INNER?JOIN?User_Master?B?ON?B.User_Record_No=?A.User_Record_No?INNER?JOIN?#temp?C?ON?C.Time_Sheet_Dtl_Record_No?=?A.Time_Sheet_Dtl_Record_No?GROUP?BY?A.User_Record_No,?B.Staff_No,B.Full_Name,B.Job_Title,?C.Period_Start_Date,C.Period_End_Date?HAVING?COUNT(*)?=?DATEDIFF(d,C.Period_Start_Date,C.Period_End_Date)+1?Select?A.User_Record_No,A.Staff_No,A.Full_Name,A.Job_Title?,A.Working_Hours,A.OT_HOURS,A.Period_Start_Date,A.Period_End_Date?,DM.Division_Code?INTO?#temp3?FROM?#temp2?AS?A?INNER?JOIN?User_Data_Access_Right?UDAR?ON?UDAR.User_Record_No?=?A.User_Record_No?INNER?JOIN?Division_Master?DM?ON?DM.Division_Record_No?=?UDAR.Division_Record_No?SELECT?*?From?#temp3?order?by?1,7,8;?Select?Count(Distinct?User_Record_No+Period_Start_Date+Period_End_Date)?From?#temp3?DROP?TABLE?#temp?,#temp2,#temp3

Top
回復(fù)人:?cloud1002(好得掉渣~)?(?)?信譽(yù):100?2003-3-19?9:35:06?得分:0

mark

Top
回復(fù)人:?smallmuda(飛翔的豬)?(?)?信譽(yù):101?2003-3-19?9:37:27?得分:0

select?*?from?a?where?time?between?time1?and?time2

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-19?9:40:15?得分:0

讓你們看看什么是SQL經(jīng)典吧..
http://expert.csdn.net/Expert/TopicView1.asp?id=928809

Top
回復(fù)人:?cpp2017(幕白兄)?(?)?信譽(yù):145?2003-3-19?9:41:08?得分:5

select?isNull(A.name,B.name),isnull(a.code,B.code)?from?table1?A
full?out?join?table2?B?on
A.id?=?B.id

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-19?9:43:29?得分:0

to?cpp2017(長(zhǎng)安不見使人愁)?
jeff?

Top
回復(fù)人:?zhw_yihui(卜盧特)?(?)?信譽(yù):94?2003-3-19?9:53:25?得分:0

SQL:SELECT?NEWID()

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-19?9:58:59?得分:0

select?a,b,c?from?tablename?ta?where?a=(select?max(a)?from?tablename?tb?where?tb.b=ta.b)
選擇在每一組b值相同的數(shù)據(jù)中對(duì)應(yīng)的a最大的(換成average或別的函數(shù)或子查詢,你會(huì)有意想不到的發(fā)現(xiàn))記錄的所有信息.
類似這樣的用法可以用于論壇每月排行榜,每月熱銷產(chǎn)品分析,按科目成績(jī)排名,等等.
上面的許多同志對(duì)子查詢存在有偏見與誤解,其實(shí)在一個(gè)好的數(shù)據(jù)分析程序中,子查詢可以簡(jiǎn)化很多程序邏輯.

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-19?10:01:40?得分:0

上面select?a,b,c?from?tablename?ta?where?a=(select?max(a)?from?tablename?tb?where?tb.b=ta.b)
這種相關(guān)子查詢和delete(insert)等結(jié)合起來(lái),可以用于消除數(shù)據(jù)庫(kù)中某個(gè)字段(或某些)的重復(fù)值

Top
回復(fù)人:?hubinasm(火星撞地球)?(?)?信譽(yù):115?2003-3-19?10:10:41?得分:0

(select?a?from?tableA?)?except?(select?a?from?tableB)?except?(select?a?from?tableC)

Top
回復(fù)人:?aocool(知秋一葉)?(?)?信譽(yù):100?2003-3-19?10:14:11?得分:0

獲益不淺啊.
SELECT?DISTINCT?TSD.Time_Sheet_Dtl_Record_No,TSD.User_Record_No,TP.Period_Start_Date?,TP.Period_End_Date?INTO?#temp?FROM?Time_Sheet_Details?TSD,?Time_Sheet_Period?TP?,User_Group_User_Relationship?UGUR,User_Group_Master?UGM?,User_Data_Access_Right?UDAR?WHERE?TSD.status?='TS_WFMGRA'?AND?DATEDIFF(dd,TP.period_start_date,TSD.work_Date)>=0?AND?DATEDIFF(dd,TP.period_end_date,TSD.work_Date)<=0?AND?UGUR.User_Record_No?=?TSD.User_Record_No?AND?UGM.User_Group_Record_No=UGUR.User_Group_Record_No?AND?UGM.User_Group_Name?IN('Technician','Engineer')?AND?UDAR.User_Record_No?=?TSD.User_Record_No?AND?UDAR.Division_Record_No?IN(1)?SELECT?DISTINCT?A.User_Record_No,?B.Staff_No,?B.Full_Name,B.Job_Title,?SUM(working_hour)?AS?Working_Hours,SUM(ot)?AS?OT_HOURS,?C.Period_Start_Date,C.Period_End_Date?INTO?#temp2?FROM?Time_Sheet_Details?A?INNER?JOIN?User_Master?B?ON?B.User_Record_No=?A.User_Record_No?INNER?JOIN?#temp?C?ON?C.Time_Sheet_Dtl_Record_No?=?A.Time_Sheet_Dtl_Record_No?GROUP?BY?A.User_Record_No,?B.Staff_No,B.Full_Name,B.Job_Title,?C.Period_Start_Date,C.Period_End_Date?HAVING?COUNT(*)?=?DATEDIFF(d,C.Period_Start_Date,C.Period_End_Date)+1?Select?A.User_Record_No,A.Staff_No,A.Full_Name,A.Job_Title?,A.Working_Hours,A.OT_HOURS,A.Period_Start_Date,A.Period_End_Date?,DM.Division_Code?INTO?#temp3?FROM?#temp2?AS?A?INNER?JOIN?User_Data_Access_Right?UDAR?ON?UDAR.User_Record_No?=?A.User_Record_No?INNER?JOIN?Division_Master?DM?ON?DM.Division_Record_No?=?UDAR.Division_Record_No?SELECT?*?From?#temp3?order?by?1,7,8;?Select?Count(Distinct?User_Record_No+Period_Start_Date+Period_End_Date)?From?#temp3?DROP?TABLE?#temp?,#temp2,#temp3
:)
cpp2017(長(zhǎng)安不見使人愁)這么長(zhǎng)一句,少見,能否介紹介紹它的功力?^_^
SELECT?DISTINCT?TSD.Time_Sheet_Dtl_Record_No,TSD.User_Record_No,TP.Period_Start_Date?,TP.Period_End_Date?INTO?#temp?FROM?Time_Sheet_Details?TSD,?Time_Sheet_Period?TP?,User_Group_User_Relationship?UGUR,User_Group_Master?UGM?,User_Data_Access_Right?UDAR?WHERE?TSD.status?='TS_WFMGRA'?AND?DATEDIFF(dd,TP.period_start_date,TSD.work_Date)>=0?AND?DATEDIFF(dd,TP.period_end_date,TSD.work_Date)<=0?AND?UGUR.User_Record_No?=?TSD.User_Record_No?AND?UGM.User_Group_Record_No=UGUR.User_Group_Record_No?AND?UGM.User_Group_Name?IN('Technician','Engineer')?AND?UDAR.User_Record_No?=?TSD.User_Record_No?AND?UDAR.Division_Record_No?IN(1)?SELECT?DISTINCT?A.User_Record_No,?B.Staff_No,?B.Full_Name,B.Job_Title,?SUM(working_hour)?AS?Working_Hours,SUM(ot)?AS?OT_HOURS,?C.Period_Start_Date,C.Period_End_Date?INTO?#temp2?FROM?Time_Sheet_Details?A?INNER?JOIN?User_Master?B?ON?B.User_Record_No=?A.User_Record_No?INNER?JOIN?#temp?C?ON?C.Time_Sheet_Dtl_Record_No?=?A.Time_Sheet_Dtl_Record_No?GROUP?BY?A.User_Record_No,?B.Staff_No,B.Full_Name,B.Job_Title,?C.Period_Start_Date,C.Period_End_Date?HAVING?COUNT(*)?=?DATEDIFF(d,C.Period_Start_Date,C.Period_End_Date)+1?Select?A.User_Record_No,A.Staff_No,A.Full_Name,A.Job_Title?,A.Working_Hours,A.OT_HOURS,A.Period_Start_Date,A.Period_End_Date?,DM.Division_Code?INTO?#temp3?FROM?#temp2?AS?A?INNER?JOIN?User_Data_Access_Right?UDAR?ON?UDAR.User_Record_No?=?A.User_Record_No?INNER?JOIN?Division_Master?DM?ON?DM.Division_Record_No?=?UDAR.Division_Record_No?SELECT?*?From?#temp3?order?by?1,7,8;?Select?Count(Distinct?User_Record_No+Period_Start_Date+Period_End_Date)?From?#temp3?DROP?TABLE?#temp?,#temp2,#temp3

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-19?11:14:05?得分:0

我認(rèn)為上面的語(yǔ)句在實(shí)現(xiàn)需求時(shí)并不是最簡(jiǎn),效率最高的語(yǔ)句.

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-19?11:45:29?得分:0

各種查詢技巧結(jié)合才能寫出最高效的查詢
在SQL中使用DISTINCT是代價(jià)比較高的查詢方式

Top
回復(fù)人:?oldsky(九指神丐)?(?)?信譽(yù):54?2003-3-19?13:13:09?得分:0

微軟不公布SQLserver2000中的函數(shù):
print?pwdcompare('helloworld',?pwdencrypt('helloworld'))
print?pwdcompare('hello',?pwdencrypt('world'))

Top
回復(fù)人:?funboy88(司令)?(?)?信譽(yù):121?2003-3-19?13:20:20?得分:0

pwdencrypt
密碼加密?
有些什么作用,不明白
隨機(jī)取出10條數(shù)據(jù)
select?top?10?*?from?tablename?order?by?newid()

Top
回復(fù)人:?mzcih(小馬過河)?(?)?信譽(yù):110?2003-3-19?13:25:31?得分:0

看君一張貼,勝看一天書。

Top
回復(fù)人:?funboy88(司令)?(?)?信譽(yù):121?2003-3-19?13:26:48?得分:5

功能:
type???vender?pcs
電腦???A????????1
電腦???A????????1
光盤???B????????2
光盤???A????????2
手機(jī)???B????????3
手機(jī)???C????????3
select?type,sum(case?vender?when?'A'?then?pcs?else?0?end),sum(case?vender?when?'C'?then?pcs?else?0?end),sum(case?vender?when?'B'?then?pcs?else?0?end)?FROM?tablename?group?by?type

Top
回復(fù)人:?funboy88(司令)?(?)?信譽(yù):121?2003-3-19?13:30:27?得分:0

FUNCTION:DELELTE?REPEAT?RECORDS
DELETE??from?tablename?where?id?not?in?(select?max(id)?from?tablename?group?by?col1,col2,...)

Top
回復(fù)人:?chonboy(一只來(lái)自南方的羊)?(?)?信譽(yù):100?2003-3-19?14:32:56?得分:0

Microsoft?SQL?Server是如何加密口令的?未公開的加密函數(shù)??
????????
如果對(duì)MSSQL的用戶信息有興趣的,可能會(huì)發(fā)現(xiàn)master.dbo.sysxlogins里面存放著用戶的口令,可是呢,password字段如果不是null就是一堆看不懂的binary,這個(gè)口令是怎么加密的呢?
其實(shí)只要仔細(xì)看看master.dbo.sp_addlogin就知道了,MSSQL的sp都可以看到代碼,真是不錯(cuò)。
讓我們來(lái)看看它是怎么做的,注意這一行select?@passwd?=?pwdencrypt(@passwd),這個(gè)時(shí)后@passwd就被加密了,讓我們也來(lái)試一下
DECLARE?@ClearPWD?varchar(255)?
DECLARE?@EncryptedPWD?varbinary(255)
SELECT?@ClearPWD?=?'test'
SELECT?@EncryptedPWD?=?CONVERT(varbinary(255),?pwdencrypt(@ClearPWD))
SELECT?@EncryptedPWD
看上去不錯(cuò),確實(shí)被加密了,可是我怎么還原呢??
呵呵,這就沒戲了,口令加密都是單向的,用加密后的密文來(lái)比較就可以了。
繼續(xù)看看其它用戶相關(guān)的sp,可以發(fā)現(xiàn)master.dbo.sp_password里面有口令比較的內(nèi)容。
pwdcompare(@old,?password,?(CASE?WHEN?xstatus&2048?=?2048?THEN?1?ELSE?0?END))
不用去理會(huì)xstatus,這是一個(gè)狀態(tài)掩碼,一般我們用的時(shí)候就直接用0就可以了
DECLARE?@ClearPWD?varchar(255)?
DECLARE?@EncryptedPWD?varbinary(255)
SELECT?@ClearPWD?=?'test'
SELECT?@EncryptedPWD?=?CONVERT(varbinary(255),?pwdencrypt(@ClearPWD))
SELECT?pwdcompare(@ClearPWD,?@EncryptedPWD,?0)
SELECT?pwdcompare('ErrorPassword',?@EncryptedPWD,?0)
這樣我們就可以使用這兩個(gè)函數(shù)來(lái)加密自己的密碼了,怎么樣,還不錯(cuò)吧?

引用自
http://www.bgchina.com/daily/bd_1/

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-20?10:00:45?得分:0

SELECT語(yǔ)法:(基本)
SELECT?[DISTINCT]
(column?[{,?column?}?]?)|?*
FROM?table?[?{?,?table}?]
[ORDER?BY?column?[ASC]?|?[DESC
[{?,?column?[ASC]?|?[DESC?}?]?]
WHERE?predicate?[?{?logical-connector?predicate?}?];
------------------------------------------------------
INSERT語(yǔ)法:
INSERT?INTO?table
[(column?{?,column})]
VALUES
(columnvalue?[{,columnvalue}]);
------------------------------------------------------
UPDATE語(yǔ)法:
UPDATE?table
SET?column?=?value?[{,?column?=?value}]
[?WHERE?predicate?[?{?logical-connector?predicate}]];
------------------------------------------------------
DELETE語(yǔ)法:
DELETE?FROM?table
[WHERE?predicate?[?{?logical-connector?predicate}?]?];
------------------------------------------------------

Top
回復(fù)人:?liuzxit(每日暈十幾次)?(?)?信譽(yù):115?2003-3-20?10:13:05?得分:0

想把我那兩頁(yè)長(zhǎng)的SELECT語(yǔ)句拿出來(lái)了﹐不過沒興趣

Top
回復(fù)人:?lgj1012(oοО○≮國(guó)產(chǎn)超人≯○Оοo)?(?)?信譽(yù):99?2003-3-20?10:13:41?得分:0

MARK?MARK

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-20?10:41:56?得分:0

常識(shí)補(bǔ)充
統(tǒng)計(jì)函數(shù):
AVG(字段名)?得出一個(gè)表格欄平均值
COUNT(*|字段名)?對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)
MAX(字段名)?取得一個(gè)表格欄最大的值
MIN(字段名)?取得一個(gè)表格欄最小的值
SUM(字段名)?把數(shù)據(jù)欄的值相加
eg:
sql="select?sum(字段名)?as?別名?from?數(shù)據(jù)表?where?條件表達(dá)式"

Top
回復(fù)人:?carl__yao(頭目)?(?)?信譽(yù):95?2003-3-20?10:50:06?得分:0

select?top?0?*?into?b?from?a

Top
回復(fù)人:?flashasp(flashasp)?(?)?信譽(yù):95?2003-3-20?13:05:01?得分:0

select?name?from?sysobjects?where?type='U''列出數(shù)據(jù)庫(kù)里所有的表名
select?name?from?syscolumns?where?id=object_id('TableName')'列出表里的所有的

Top
回復(fù)人:?flashasp(flashasp)?(?)?信譽(yù):95?2003-3-20?13:05:47?得分:0

select?name?from?sysobjects?where?type='U''列出數(shù)據(jù)庫(kù)里所有的表名
select?name?from?syscolumns?where?id=object_id('TableName')'列出表里的所有的字段名

Top
回復(fù)人:?annkie(無(wú)聲的雨)?(?)?信譽(yù):113?2003-3-20?13:27:22?得分:0

幫忙看看這個(gè)帖子,解決了我想貼在這里應(yīng)該是可以的?:)
http://expert.csdn.net/Expert/topic/1554/1554516.xml?temp=.6041071

Top
回復(fù)人:?flyinto(孤獨(dú)求敗)?(?)?信譽(yù):100?2003-3-20?14:14:42?得分:0

MARK

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-20?14:15:00?得分:0

source?data
kzx4dm?xbdm?jylsfsdm?...
11??????2???????10
11??????2???????10?
12??????2???????10
12??????1???????20?
12??????1???????20
destination:
kzx4dm??bys_count?yjs_count?jy_ratio
11????????2???????????2????????1.00
12????????3???????????1????????1/3
SELECT?DISTINCT?kzx4dm,(SELECT?COUNT(jylsfsdm)?FROM?tablename?WHERE?kzx4dm=TA.kzx4dm)?AS?bys_count,(SELECT?COUNT(jylsfsdm)?FROM?tablename?WHERE?kzx4dm=TA.kzx4dm?WHERE?jylsfsdm=10)?AS?yjs_count,yjs_count/bys_count?AS?jy_ratio
FROM?tablename?AS?TA

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-20?14:18:35?得分:10

to?annkie(活著便精彩)?
看看上面的語(yǔ)句是否解決了問題?
糾正一下,應(yīng)該是
SELECT?DISTINCT?kzx4dm,(SELECT?COUNT(jylsfsdm)?FROM?tablename?WHERE?kzx4dm=TA.kzx4dm)?AS?bys_count,(SELECT?COUNT(jylsfsdm)?FROM?tablename?WHERE?kzx4dm=TA.kzx4dm?AND?jylsfsdm=10)?AS?yjs_count,yjs_count/bys_count?AS?jy_ratio
FROM?tablename?AS?TA

Top
回復(fù)人:?GageCSDN(稻草人)?(?)?信譽(yù):100?2003-3-20?17:30:45?得分:0

seeing........

Top
回復(fù)人:?allserver(server)?(?)?信譽(yù):100?2003-3-20?19:13:25?得分:0

8錯(cuò)

Top
回復(fù)人:?kirc(無(wú)聊中...)?(?)?信譽(yù):100?2003-3-20?19:16:32?得分:0

關(guān)注....

Top
回復(fù)人:?annkie(無(wú)聲的雨)?(?)?信譽(yù):113?2003-3-20?19:28:23?得分:0

To?yonghengdizhen:
thank?you.
正在研究此問題中.
yjs_count/bys_count?AS?jy_ratio?這句無(wú)法通過檢查,不過可以把前面的東西拿倒這里來(lái)搞定,不使用字段名.
??你的sql語(yǔ)句是對(duì)的.

Top
回復(fù)人:?flyycyu(fly)?(?)?信譽(yù):100?2003-3-21?9:36:40?得分:0

gz

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-21?10:02:00?得分:0

我決定:把200分中的180分,獎(jiǎng)給貼出最精妙的SQL的高手!

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-21?11:00:52?得分:0

二維表?T(F1,F2,F3,F4,F5,F6,F7)?表示如下關(guān)系:
??學(xué)生ID????學(xué)生姓名????課程ID????課程名稱?????成績(jī)??????教師ID????教師姓名?
????S3????????王五????????K4????????政治????????53?????????T4???????趙老師??
????S1????????張三????????K1????????數(shù)學(xué)????????61?????????T1???????張老師??
????S2????????李四????????K3????????英語(yǔ)????????88?????????T3???????李老師??
????S1????????張三????????K4????????政治????????77?????????T4???????趙老師??
????S2????????李四????????K4????????政治????????67?????????T5???????周老師??
????S3????????王五????????K2????????語(yǔ)文????????90?????????T2???????王老師??
????S3????????王五????????K1????????數(shù)學(xué)????????55?????????T1???????張老師??
????S1????????張三????????K2????????語(yǔ)文????????81?????????T2???????王老師??
????S4????????趙六????????K2????????語(yǔ)文????????59?????????T1???????王老師??
????S1????????張三????????K3????????英語(yǔ)????????37?????????T3???????李老師??
????S2????????李四????????K1????????數(shù)學(xué)????????81?????????T1???????張老師??
??請(qǐng)以一句?T-SQL?(Ms?SQL?Server)?或?Jet?SQL?(Ms?Access)?在?原表?T?基礎(chǔ)上作答
1.如果?T?表還有一字段?F0?數(shù)據(jù)類型為自動(dòng)增量整型(唯一,不會(huì)重復(fù)),
??而且?T?表中含有除?F0?字段外,請(qǐng)刪除其它字段完全相同的重復(fù)多余的臟記錄數(shù)據(jù):
delete?from?t??where?f0?in(select?max(f0)?from?t?group?by?f1,f2,f3,f4,f5,f6,f7?having?count(f0)>1)
2.列印各科成績(jī)最高和最低的記錄:?(就是各門課程的最高、最低分的學(xué)生和老師)
??課程ID,課程名稱,最高分,學(xué)生ID,學(xué)生姓名,教師ID,教師姓名,最低分,學(xué)生ID,學(xué)生姓名,教師ID,教師姓名
select?tb.f4,tb.f3,tb1.f5,tb.f1,tb.f2,tb.f6,tb.f7,tb2.f5,tb2.f1,tb2.f2,tb2.f6,tb2.f7?from?t?tb?where?
f5=(select?max(f5)?from?t?where?t.f4=tb.f4)
join?select?f2,f7?from?t?tb2?where?
f5=(select?min(f5)?from?t?where?t.f4=tb2.f4)
on?tb.f4=tb2.f4
先完成一個(gè),想想在做下一個(gè).
3.按成績(jī)從高到低順序,列印所有學(xué)生四門(數(shù)學(xué),語(yǔ)文,英語(yǔ),政治)課程成績(jī):?(就是每個(gè)學(xué)生的四門課程的成績(jī)單)
??學(xué)生ID,學(xué)生姓名,數(shù)學(xué),語(yǔ)文,英語(yǔ),政治,有效課程數(shù),有效平均分
??(注:?有效課程即在?T?表中有該學(xué)生的成績(jī)記錄,如不明白可不列印"有效課程數(shù)"和"有效平均分")
select?tb1.f1,tb1.f2,count(tb1.f5)?as?scores,sum(tb1.f5)?as?scoresum,?avg(tb1.f5)?AS?average,?
tb2.f5,tb3.f5,tb4.f5,tb5.f5?
from?t?as?tb1?
left?join?t?as?tb2
on?tb1.f0=tb2.f0?and?tb2.f3=k4
left?join?t?as?tb3
on?tb1.f0=tb3.f0?and?tb3.f3=k3
left?join?t?as?tb4
on?tb1.f0=tb4.f0?and?tb4.f3=k2
left?join?t?as?tb5
on?tb1.f0=tb5.f0?and?tb5.f3=k1
grout?by?tb1.f2?order?by?tb1.scoresum?desc
4.按各科不及格率的百分?jǐn)?shù)從低到高和平均成績(jī)從高到低順序,統(tǒng)計(jì)并列印各科平均成績(jī)和不及格率的百分?jǐn)?shù)(用"N行"表示):?(就是分析哪門課程難)
??課程ID,課程名稱,平均成績(jī),及格百分?jǐn)?shù)
select??f3,f4,?(select?count(f1)?from?t?where?t.f4=tb.f4?and?f5<60)/(select?count(f1)?from?t?where?t.f4=tb.f4)?as?failper,((select?sum(f5)?from?t?where?t.f4=tb.f4)/?(select?count(f5)?from?t?where?t.f4=tb.f4))?as?averagescore
from?t?tb?order?by?failper?asc,?as?averagescore?desc

Top
回復(fù)人:?wenhao676(zzc)?(?)?信譽(yù):93?2003-3-21?11:01:50?得分:0

/******?Object:??Stored?Procedure?dbo.dt_checkoutobject????Script?Date:?2003-3-12?9:25:26?******/
create?proc?dbo.dt_checkoutobject
????@chObjectType??char(4),
????@vchObjectName?varchar(255),
????@vchComment????varchar(255),
????@vchLoginName??varchar(255),
????@vchPassword???varchar(255),
????@iVCSFlags?????int?=?0,
????@iActionFlag???int?=?0/*?0?=>?Checkout,?1?=>?GetLatest,?2?=>?UndoCheckOut?*/
as
set?nocount?on
declare?@iReturn?int
declare?@iObjectId?int
select?@iObjectId?=0
declare?@VSSGUID?varchar(100)
select?@VSSGUID?=?'SQLVersionControl.VCS_SQL'
declare?@iReturnValue?int
select?@iReturnValue?=?0
declare?@vchTempText?varchar(255)
/*?this?is?for?our?strings?*/
declare?@iStreamObjectId?int
select?@iStreamObjectId?=?0
????declare?@iPropertyObjectId?int
????select?@iPropertyObjectId?=?(select?objectid?from?dbo.dtproperties?where?property?=?'VCSProjectID')
????declare?@vchProjectName???varchar(255)
????declare?@vchSourceSafeINI?varchar(255)
????declare?@vchServerName????varchar(255)
????declare?@vchDatabaseName??varchar(255)
????exec?dbo.dt_getpropertiesbyid_vcs?@iPropertyObjectId,?'VCSProject',???????@vchProjectName???OUT
????exec?dbo.dt_getpropertiesbyid_vcs?@iPropertyObjectId,?'VCSSourceSafeINI',?@vchSourceSafeINI?OUT
????exec?dbo.dt_getpropertiesbyid_vcs?@iPropertyObjectId,?'VCSSQLServer',?????@vchServerName????OUT
????exec?dbo.dt_getpropertiesbyid_vcs?@iPropertyObjectId,?'VCSSQLDatabase',???@vchDatabaseName??OUT
????if?@chObjectType?=?'PROC'
????begin
????????/*?Procedure?Can?have?up?to?three?streams
???????????Drop?Stream,?Create?Stream,?GRANT?stream?*/
????????exec?@iReturn?=?sp_OACreate?@VSSGUID,?@iObjectId?OUT
????????if?@iReturn?<>?0?GOTO?E_OAError
????????exec?@iReturn?=?sp_OAMethod?@iObjectId,
????????????????????????????????????'CheckOut_StoredProcedure',
????????????????????????????????????NULL,
????????????????????????????????????@sProjectName?=?@vchProjectName,
????????????????????????????????????@sSourceSafeINI?=?@vchSourceSafeINI,
????????????????????????????????????@sObjectName?=?@vchObjectName,
????????????????????????????????????@sServerName?=?@vchServerName,
????????????????????????????????????@sDatabaseName?=?@vchDatabaseName,
????????????????????????????????????@sComment?=?@vchComment,
????????????????????????????????????@sLoginName?=?@vchLoginName,
????????????????????????????????????@sPassword?=?@vchPassword,
????????????????????????????????????@iVCSFlags?=?@iVCSFlags,
????????????????????????????????????@iActionFlag?=?@iActionFlag
????????if?@iReturn?<>?0?GOTO?E_OAError
????????exec?@iReturn?=?sp_OAGetProperty?@iObjectId,?'GetStreamObject',?@iStreamObjectId?OUT
????????if?@iReturn?<>?0?GOTO?E_OAError
????????create?table?#commenttext?(id?int?identity,?sourcecode?varchar(255))
????????select?@vchTempText?=?'STUB'
????????while?@vchTempText?IS?NOT?NULL
????????begin
????????????exec?@iReturn?=?sp_OAMethod?@iStreamObjectId,?'GetStream',?@iReturnValue?OUT,?@vchTempText?OUT
????????????if?@iReturn?<>?0?GOTO?E_OAError
????????????if?(@vchTempText?IS?NOT?NULL)?insert?into?#commenttext?(sourcecode)?select?@vchTempText
????????end
????????select?'VCS'=sourcecode?from?#commenttext?order?by?id
????????select?'SQL'=text?from?syscomments?where?id?=?object_id(@vchObjectName)?order?by?colid
????end
CleanUp:
????return
E_OAError:
????exec?dbo.dt_displayoaerror?@iObjectId,?@iReturn
????GOTO?CleanUp
GO
看的我直暈~!

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-21?11:17:12?得分:0

1.如果?T?表還有一字段?F0?數(shù)據(jù)類型為自動(dòng)增量整型(唯一,不會(huì)重復(fù)),
??而且?T?表中含有除?F0?字段外,請(qǐng)刪除其它字段完全相同的重復(fù)多余的臟記錄數(shù)據(jù):
delete?from?t??where?f0?in(select?max(f0)?from?t?group?by?f1,f2,f3,f4,f5,f6,f7?having?count(f0)>1)
上面這個(gè)sql有問題
正確的如下
DELETE?Legal_Dispute_Lawyer?WHERE?Lawyer_Record_No?IN(SELECT?Lawyer_Record_No?FROM?Legal_Dispute_Lawyer?LDL?WHERE?Lawyer_Record_No(SELECT?TOP?1?Lawyer_Record_No?FROM?Legal_Dispute_Lawyer?WHERE?LD=LDL.LD?AND?Name=LDL.Name?AND?Email=LDL.Email?AND?Phone_No=LDL.Phone_No?AND?Fax_No=LDL.Fax_No))
消除Legal_Dispute_Lawyer?表中除Lawyer_Record_No(自增字段)外其余數(shù)據(jù)完全相同的記錄.
表結(jié)構(gòu)如下
if?exists?(select?*?from?dbo.sysobjects?where?id?=?object_id(N'[dbo].[Legal_Dispute_Lawyer]')?and?OBJECTPROPERTY(id,?N'IsUserTable')?=?1)
drop?table?[dbo].[Legal_Dispute_Lawyer]
GO
CREATE?TABLE?[dbo].[Legal_Dispute_Lawyer]?(
[Lawyer_Record_No]?[int]?IDENTITY?(1,?1)?NOT?NULL?,
[LD]?[int]?NOT?NULL?,
[Name]?[int]?NOT?NULL?,
[Phone_No]?[varchar]?(255)?COLLATE?Chinese_PRC_CI_AS?NULL?,
[Fax_No]?[varchar]?(255)?COLLATE?Chinese_PRC_CI_AS?NULL?,
?[varchar]?(255)?COLLATE?Chinese_PRC_CI_AS?NULL?
)?ON?[PRIMARY]
GO
以這種方式還可以實(shí)現(xiàn)組內(nèi)消除重復(fù)值..

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-21?11:19:48?得分:0

DELETE?Legal_Dispute_Lawyer?WHERE?Lawyer_Record_No?IN(SELECT?Lawyer_Record_No?FROM?Legal_Dispute_Lawyer?LDL?WHERE?Lawyer_Record_No<>(SELECT?TOP?1?Lawyer_Record_No?FROM?Legal_Dispute_Lawyer?WHERE?LD=LDL.LD?AND?Name=LDL.Name?AND?Email=LDL.Email?AND?Phone_No=LDL.Phone_No?AND?Fax_No=LDL.Fax_No))

Top
回復(fù)人:?ylecho(~貓貓)?(?)?信譽(yù):100?2003-3-21?13:58:37?得分:0

select?*?from?table;
xixi

Top
回復(fù)人:?SeaSee(縱橫四海)?(?)?信譽(yù):100?2003-3-21?14:10:19?得分:0

table1
kzx4dm?xbdm?jylsfsdm?...
10??????2???????8
11??????2???????9?
12??????2???????19
13??????1???????18?
14??????1???????19
select?top?3?with?ties?jylsfsdm?from?table1
結(jié)果:
kzx4dm?xbdm?jylsfsdm?...
12??????2???????19
14??????1???????19
13??????1???????18?
11??????2???????9?
說(shuō)明:取出并列排行的所有記錄

Top
回復(fù)人:?lsqteng(阿琦)?(?)?信譽(yù):102?2003-3-21?14:18:11?得分:0

說(shuō)到語(yǔ)法我就來(lái)興趣了,哈哈,請(qǐng)看:
SELECT?statement::=
<query_experssion>
[ORDER?BY?{order_by_expression|Column_position[ASC|DESC]}
[,...n]]
[COMPUTE
{{AVG|COUNT|MAX|MIN|SUM}(exression)}[,...n]
[BY?expression[,...n]]
]
[FOR?{BROWSE?|XML{RAW|AUTO|EXPLICIT}
??[,XMLDATA]
??[,ELEMENTS]
??[,BINARY?base64]
}
]
[OPTION(<query_hint>[,...n])]
???<query?expression>::=
{<query?specification>|(<query?expression>)}
[UNION[ALL]<query?specification|(<query?expression<)[...n]]
<query?specification>::=
SELECT?[ALL|DISTINCT]
??[{TOP?integer|TOP?integer?PERCENT}[WITH?TIES]]
<select?_list>
[INTO?new_table]
[FROM{<table_source>}[,...n]]
[WHERE?<search_condition>]
[GROUP?BY?[ALL]group_by_expression[,...n]
??[WITH{CUBE|ROLLUP}]
]
[HAVING<search_condition>}
哎,行了吧,這還是select?語(yǔ)句的形式。要看完全的,喔,那可不得了喔。我不寫了,累死了,呵呵

Top
回復(fù)人:?vulcan(東方不敗)?(?)?信譽(yù):126?2003-3-21?14:24:43?得分:0

關(guān)注.

Top
回復(fù)人:?zhangguagua(瓜瓜)?(?)?信譽(yù):131?2003-3-21?14:37:53?得分:0

收藏

Top
回復(fù)人:?shark7823(魔鬼的臉蛋,天使的身材)?(?)?信譽(yù):97?2003-3-21?14:45:12?得分:0

這種好貼,不mark,不行啊

Top
回復(fù)人:?bingeng(大眼鏡)?(?)?信譽(yù):102?2003-3-21?14:47:42?得分:0

UP

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-21?15:24:55?得分:0

敬請(qǐng)高手出貼,最好是存儲(chǔ)過程

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-21?15:31:32?得分:0

存儲(chǔ)過程其實(shí)沒什么經(jīng)典不經(jīng)典.
無(wú)非是把你在VBS中實(shí)現(xiàn)的邏輯在sql服務(wù)端實(shí)現(xiàn)而已..
而高效的存儲(chǔ)過程往往還是使用傳統(tǒng)的sql語(yǔ)法來(lái)實(shí)現(xiàn)主要邏輯.

Top
回復(fù)人:?windyao(貓)?(?)?信譽(yù):94?2003-3-21?16:02:22?得分:0

8錯(cuò)8錯(cuò)

Top
是那個(gè)家伙對(duì)數(shù)據(jù)下了手腳^_^
create?table?IKnowYou
(userid?varchar(30),
TableName?varchar(50),
Action?varchar(6),
DateT?datatime,
TrrigerTableColumns.....,
TrrigerTableColumns.....)
create?trriger?Who_Do_It?on?table
for?update
as
declare?userid?varchar(30)
declare?TableName?varchar(50)
declare?Action?varchar(6)
userid=@@suser_sname
Action='update'
TableName='tabel'
insert?into?IKnowYou?values(userid,TableName,Action,Now,select?*?from?deleted,select?*?from?inserted)

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-21?17:06:52?得分:0

kill?all?connections?to?a?given?databse
CREATE?PROCEDURE?usp_killDBConnections?@DBName?varchar(50),?@withmsg?bit=1
AS
SET?NOCOUNT?ON
DECLARE?@spidstr?varchar(8000)
DECLARE?@ConnKilled?smallint
SET?@ConnKilled=0
SET?@spidstr?=?''
IF?db_id(@DBName)?<?4?
BEGIN
PRINT?'Connections?to?system?databases?cannot?be?killed'
RETURN
END
SELECT?@spidstr=coalesce(@spidstr,','?)+'kill?'+convert(varchar,?spid)+?';?'
FROM?master..sysprocesses?WHERE?dbid=db_id(@DBName)
IF?LEN(@spidstr)?>?0?
BEGIN
EXEC(@spidstr)
SELECT?@ConnKilled?=?COUNT(1)
FROM?master..sysprocesses?WHERE?dbid=db_id(@DBName)?
END
IF?@withmsg?=1
PRINT??CONVERT(VARCHAR(10),?@ConnKilled)?+?'?Connection(s)?killed?for?DB?'??+?@DBName
GO

Top
回復(fù)人:?matq2008(葉子.net)?(?)?信譽(yù):100?2003-3-21?18:00:47?得分:0

SELECT?A.NUM,?A.NAME,?B.UPD_DATE,?B.PREV_UPD_DATE
??FROM?TABLE1,?
????(SELECT?X.NUM,?X.UPD_DATE,?Y.UPD_DATE?PREV_UPD_DATE
????????FROM?(SELECT?NUM,?UPD_DATE,?INBOUND_QTY,?STOCK_ONHAND
????????????????FROM?TABLE2
??????????????WHERE?TO_CHAR(UPD_DATE,'YYYY/MM')?=?TO_CHAR(SYSDATE,?'YYYY/MM'))?X,?
????????????(SELECT?NUM,?UPD_DATE,?STOCK_ONHAND
????????????????FROM?TABLE2
??????????????WHERE?TO_CHAR(UPD_DATE,'YYYY/MM')?=?
????????????????????TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,?'YYYY/MM')?&brvbar;&brvbar;?'/01','YYYY/MM/DD')?-?1,?'YYYY/MM')?)?Y,?
????????WHERE?X.NUM?=?Y.NUM?(+)
??????????AND?X.INBOUND_QTY?+?NVL(Y.STOCK_ONHAND,0)?<>?X.STOCK_ONHAND?)?B
WHERE?A.NUM?=?B.NUM??

Top
回復(fù)人:?cnuninet(www.helloaspx.com)?(?)?信譽(yù):100?2003-3-21?18:26:32?得分:0

SELECT?*?FROM?table?ORDER?BY?id
SELECT?*?FROM?table?ORDER?BY?id?DESC
正反排序,厲害吧!

Top
回復(fù)人:?cnuninet(www.helloaspx.com)?(?)?信譽(yù):100?2003-3-21?18:26:54?得分:0

還有,一次選出表中的所有內(nèi)容:
SELECT?*?FROM?table

Top
回復(fù)人:?learnner(&nbsp;)?(?)?信譽(yù):110?2003-3-21?18:42:16?得分:0

mark

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-21?18:42:41?得分:0

樓上的哥們,厲害!^_^

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-21?18:45:07?得分:0

不是說(shuō)你,是說(shuō):?cnuninet(www.helloaspx.com)?,呵呵

Top
回復(fù)人:?miqier1209(米琪兒)?(?)?信譽(yù):100?2003-3-21?22:58:39?得分:0

select?*?into?b?from?a?where?1<>1
這樣生成的b表訪問的用戶沒有select的權(quán)限?
請(qǐng)問sql?DX們這個(gè)問題怎么解決?

Top
回復(fù)人:?whcasp(money?is?best~)?(?)?信譽(yù):105?2003-3-22?9:25:25?得分:0

厲害

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-22?10:09:48?得分:0

Select?left(field,1)?as?field1?from?table_name?order?by?field?desc

Top
回復(fù)人:?ministrybill(生命的烙印)?(?)?信譽(yù):120?2003-3-22?10:23:58?得分:0

唉,好像稱不上經(jīng)典
大家來(lái)捧捧場(chǎng):http://expert.csdn.net/Expert/topic/1545/1545418.xml?temp=.6732141

Top
回復(fù)人:?legend9(legend)?(?)?信譽(yù):100?2003-3-22?11:13:44?得分:0

select?count(clubmember.clubid)as?hot,clubmember.clubid,clubinfo.clubid,clubinfo.name?from?clubmember,clubinfo?where?clubinfo.clubid=clubmember.clubid?group?by?clubmember.clubid?order?by?hot?DESC?limit?10

Top
回復(fù)人:?waterfall_cp(鳥鳥)?(?)?信譽(yù):98?2003-3-22?11:36:37?得分:0

條件刪除
DELETE?DBO.TEMP?WHERE?FLD_CHARACTER?IN?
(
SELECT?FLD_CHARACTER
FROM?dbo.TBL_CHARACTER
WHERE?(FLD_DELETED?=?1)?AND?(FLD_LEVEL?<=?18)?AND?
??????(FLD_UPDATEDATETIME?<=?GETDATE()?-?5)
)

Top
回復(fù)人:?georgechen(小雨點(diǎn))?(?)?信譽(yù):100?2003-3-22?15:39:49?得分:0

選擇前數(shù)據(jù)庫(kù)里前10條記錄:
1、select?top?10?*?from?table
2、set?rowcount?10
???select?*?from?table

Top
回復(fù)人:?dh20156(風(fēng)之石-ASP.net學(xué)習(xí)中)?(?)?信譽(yù):5?2003-3-22?16:13:21?得分:0

今天才把合計(jì)函數(shù)搞定:
???Set?rs=conn.execute("Select?min(id)?as?minID?from?TABLE")?^_^

Top
回復(fù)人:?boy21cnthp(娃娃)?(?)?信譽(yù):99?2003-3-22?17:06:00?得分:0

高手

Top
回復(fù)人:?honghaier(紅孩兒)?(?)?信譽(yù):100?2003-3-22?18:23:01?得分:0

select?SQL高手?from?本版發(fā)貼者
Where??得分>0

Top
回復(fù)人:?sevenhzheleven(水冰)?(?)?信譽(yù):100?2003-3-24?1:54:26?得分:0

哇,,,,高手,你們是工作的時(shí)候?qū)W的,還是讀書的時(shí)候開始學(xué)的?請(qǐng)教

Top
回復(fù)人:?ljupin(無(wú)情刀)?(?)?信譽(yù):106?2003-3-24?2:09:57?得分:0

select?*?form?*
會(huì)執(zhí)行嗎

Top
回復(fù)人:?dawooo(大宇)?(?)?信譽(yù):100?2003-3-24?8:15:58?得分:0

大宇閱覽

Top
回復(fù)人:?wfnuser(夏雪)?(?)?信譽(yù):103?2003-3-24?8:52:17?得分:5

select?*?from?日程安排?where?datediff('minute',f開始時(shí)間,getdate())>5
日程安排提前五分鐘提醒。

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-24?9:52:31?得分:0

to?miqier1209(米琪兒)?(?)?信譽(yù):100??2003-03-21?22:58:00??得分:0?


??select?*?into?b?from?a?where?1<>1
這樣生成的b表訪問的用戶沒有select的權(quán)限?
請(qǐng)問sql?DX們這個(gè)問題怎么解決?
指定dbo前綴應(yīng)該可以解決問題了..


Top
回復(fù)人:?accp258(男人背后的女人)?(?)?信譽(yù):101?2003-3-24?11:17:19?得分:0

mark!

Top
回復(fù)人:?suasalito(媽的,什么血這么難喝,喝可樂去)?(?)?信譽(yù):100?2003-3-24?11:19:59?得分:0

同學(xué)們回答的都不錯(cuò),恩,值得表?yè)P(yáng)

Top
回復(fù)人:?hotel9545(清風(fēng)劍客)?(?)?信譽(yù):100?2003-3-24?12:10:38?得分:0

復(fù)制一張表
create?table?aaa?as?select?*?from?bbb;

Top
回復(fù)人:?fenlin(千里之行,始于足下......)?(?)?信譽(yù):110?2003-3-24?12:21:33?得分:0

我也來(lái)湊熱鬧,呵呵......
<%
'取出隨機(jī)記錄
Randomize
RNumber?=?Int(Rnd*200)?+?1
SQL?=?"SELECT?*?FROM?Customers?WHERE?ID?=?"?&?RNumber
set?objRec?=?ObjConn.Execute(SQL)
Response.WriteRNumber?&?"?=?"?&?objRec("ID")?&?"?"?&?objRec("c_email")
%>

Top
回復(fù)人:?linens(存儲(chǔ)過程)?(?)?信譽(yù):100?2003-3-24?13:33:10?得分:0

上面的人把視圖都搬出來(lái)了啊不過幾乎都是查詢,我來(lái)點(diǎn)實(shí)用的
insert?into?pbrule(newrid,subj,bz,zf,orid,rstat,layer,bid)?select?newrid,subj,bz,zf,orid,rstat,layer,bid?from?pbrule1?where?bruleid=bruleid
將pbrule1?表中符合條件的記錄?導(dǎo)入?pbrule表中

Top
回復(fù)人:?linens(存儲(chǔ)過程)?(?)?信譽(yù):100?2003-3-24?13:38:49?得分:0

下面這個(gè)更實(shí)用,就是兩張關(guān)聯(lián)表,刪除主表中已經(jīng)在副表中沒有的信息
delete?from?info?where?not?exists?(?select?*?from?infobz?where?info.infid=infobz.infid?)?
這條語(yǔ)句就是刪除?INFO表中infid字段在infobz中不存在的記錄
此語(yǔ)句用來(lái)維護(hù)數(shù)據(jù)庫(kù)很有用哦。
樓主給點(diǎn)分吧

Top
回復(fù)人:?qigang_liu(云山云海)?(?)?信譽(yù):100?2003-3-24?15:19:57?得分:5

CREATE?OR?REPLACE?PROCEDURE?DUMP_TO_WEB_TCLHD_SP_OBJ
AS
BEGIN
CALC_PIA_PRICE?;
DELETE?FROM?TCLHD_SP_OBJ?;
INSERT?INTO?TCLHD_SP_OBJ?(NAME,CODE,ID,PRICE,TYPE,FIELDS)?(
SELECT?c.DESCRIPTION,C.SEGMENT1,a.INVENTORY_ITEM_ID,?nvl(c.ATTRIBUTE14,'0'),0,nvl(c.ATTRIBUTE13,0)
from?mtl_item_categories?a?,?mtl_categories?b?,?mtl_system_items?c???
where?a.CATEGORY_ID?=?b.CATEGORY_ID?and?b.SEGMENT1='原材料'?
and?a.INVENTORY_ITEM_ID?=?c.INVENTORY_ITEM_ID?AND?A.ORGANIZATION_ID?=?21????
and?c.ORGANIZATION_ID?=?21?and?c.inventory_item_status_code?=?'Active'?);
COMMIT?;
END?;

Top
回復(fù)人:?wnhoo(e夢(mèng)緣)?(?)?信譽(yù):115?2003-3-24?15:38:58?得分:0

數(shù)據(jù)庫(kù)IBM?DB2?》》》SQL
絕對(duì)精華
select?dmbh,SJDM,flsm,dmzz?from?ydm?where?dmbh=3300
union?all
select?dmbh,SJDM,flsm,dmzz?from?ydm?where?dmbh?in
(select?dmzz?from?ydm?where?dmbh=3300)
union?all
select?dmbh,SJDM,flsm,dmzz?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?(
select?dmzz?from?ydm?where?dmbh=3300))
union?all
select?dmbh,SJDM,flsm,dmzz?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?(
select?dmzz?from?ydm?where?dmbh=3300)))
union?all
select?dmbh,SJDM,flsm,dmzz?from?ydm?where?dmbh?in
(select?dmzz?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?(
select?dmzz?from?ydm?where?dmbh=3300))))
**********************************
select?SJDM?from?ydm?where?dmbh=3300
union?all
select?SJDM?from?ydm?where?dmbh?in
(select?dmzz?from?ydm?where?dmbh=3300)
union?all
select?SJDM?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?(
select?dmzz?from?ydm?where?dmbh=3300))
union?all
select?SJDM?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?(
select?dmzz?from?ydm?where?dmbh=3300)))
union?all
select?SJDM?from?ydm?where?dmbh?in
(select?dmzz?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?
(select?dmzz?from?ydm?where?dmbh?in?(
select?dmzz?from?ydm?where?dmbh=3300))))
**************************************************
SELECT?COUNT(*)?as?yhs?,SUM(DF)?as?df?FROM?DB2.DFTDF
WHERE?(year(rq)*12+month(rq))?between?24015?and?24015?
AND?dflb=513?
and?(ZHH,YYH)?IN?
(SELECT?ZHH,YYxH?FROM?DB2.YDD111?WHERE?HYM?in
(?select?SJDM?from?DB2.ydm?where?dmbh=3200?
union?all?
select?SJDM?from?DB2.ydm?where?dmbh?in?(
select?dmzz?from?DB2.ydm?where?dmbh=3200)?
union?all
select?SJDM?from?DB2.ydm?where?dmbh?in?(
select?dmzz?from?DB2.ydm?where?dmbh?in?(
select?dmzz?from?DB2.ydm?where?dmbh=3200))
union?all
select?SJDM?from?DB2.ydm?where?dmbh?in?(
Select?dmzz?from?DB2.ydm?where?dmbh?in?(
select?dmzz?from?DB2.ydm?where?dmbh?in?(
select?dmzz?from?DB2.ydm?where?dmbh=3200)))
union?all
select?SJDM?from?DB2.ydm?where?dmbh?in?(
select?dmzz?from?DB2.ydm?where?dmbh?in?(
select?dmzz?from?DB2.ydm?where?dmbh?in?(
select?dmzz?from?DB2.ydm?where?dmbh?in?(
select?dmzz?from?DB2.ydm?where?dmbh=3200))))
))?
***********************************************
select?bcm,bsm,count(bsm)?as?sl
from?(
select??bcm,case?
when?blx='DXB'?and?bxh?like?'DD%'?AND?BXH?NOT?LIKE?'DDS%'
then?'JJB'
else?'DZB'
end?as?bsm
from?jldb)?as?jldb2
group?by?bcm,bsm
select?bcm,bsm,count(bsm)?as?sl
from?(
select??bcm,case?
when?blx='DXB'?and?bxh?like?'DD%'?AND?BXH?NOT?LIKE?'DDS%'
then?'JJB'
else?'DZB'
end?as?bsm
from?jldb
where?bzt='OK'?and?qyrq?between?'1999-1-1'?and?'2003-1-3'?)?as?jldb2
group?by?bcm,bsm
****************
select?bcm,bsm,bxh,count(bsm)?as?sl
from?(
select??bcm,case?
when?blx='DXB'?and?bxh?like?'DD%'?AND?BXH?NOT?LIKE?'DDS%'
then?'JJB'
else?'DZB'
end?as?bsm,bxh
from?jldb
where?bzt='OK'?and?qyrq?between?'1999-1-1'?and?'2003-1-3'?)?as?jldb2
group?by?bcm,bxh,bsm
**********************************************
with?ttt?as?(select?bcm,bxh,bsm,count(bsm)?as?sl?from?(select??bcm,bxh,case??when?blx='DXB'?and?bxh?like?'DD%'?AND?BXH?NOT?LIKE?'DDS%'?then?'機(jī)械表'?else?'DZB'?end?
as?bsm?from?jldb?where?bzt='OK'?and?qyrq<='2002-2-2'??)?as?jldb2?group?by?bcm,bxh,bsm),
sss?as?(select?bcm,bxh,bsm,count(bsm)?as?sl1?from?(select??bcm,bxh,case??when?blx='DXB'?and?bxh?like?'DD%'?AND?BXH?NOT?LIKE?'DDS%'?then?'機(jī)械表'?else?'DZB'?end?
as?bsm?from?jldb?where?bzt='OK'?and?qyrq<='2000-1-1'??)?as?jldb2?group?by?bcm,bxh,bsm)
select?ttt.bcm,ttt.bxh,ttt.bsm,value(ttt.sl,0)?as?sl1,value(sss.sl1,0)??as?sl2,(value(ttt.sl,0)-value(sss.sl1,0))?as?sl3?from?ttt?full?join?sss?
on?sss.bxh=ttt.bxh?and?sss.bcm=ttt.bcm?and?sss.bsm=ttt.bsm?order?by?ttt.bcm,ttt.bxh,ttt.bsm

Top
回復(fù)人:?guzh()?(?)?信譽(yù):100?2003-3-24?17:45:41?得分:0

看了

Top
回復(fù)人:?realljx(至尊十三少)?(?)?信譽(yù):102?2003-3-24?18:52:15?得分:0

好長(zhǎng)

Top
回復(fù)人:?shawshanke(我隨風(fēng)而來(lái),隨風(fēng)而去)?(?)?信譽(yù):100?2003-3-24?19:44:53?得分:0

恭喜此帖突破100大觀!
--------------------------------------------------
我隨風(fēng)而來(lái),又隨風(fēng)而去!

Top
回復(fù)人:?cep50(cep50)?(?)?信譽(yù):100?2003-3-24?20:30:58?得分:0

上當(dāng)了,該軟件沒什么用。是在騙取別人的智慧,還要收人家的人民幣。

Top
回復(fù)人:?eafin(e峰.Net)(一葉楓舟)?(?)?信譽(yù):115?2003-3-24?21:00:38?得分:0

收藏啦!
希望誰(shuí)能把這些整理一下。然后我再收藏,呵呵

Top
回復(fù)人:?rolandzhang()?(?)?信譽(yù):103?2003-3-24?21:22:06?得分:0

wenhao676能否加些注釋?我菜一點(diǎn)。

Top
回復(fù)人:?coffee_black(黑咖啡)?(?)?信譽(yù):100?2003-3-25?0:07:54?得分:0

是好貼!!

Top
回復(fù)人:?zhw_yihui(卜盧特)?(?)?信譽(yù):94?2003-3-25?8:34:10?得分:0

select?a,b,c?from?tablename?ta?where?a=(select?max(a)?from?tablename?tb?where?tb.b=ta.b)
選擇在每一組b值相同的數(shù)據(jù)中對(duì)應(yīng)的a最大的(換成average或別的函數(shù)或子查詢,你會(huì)有意想不到的發(fā)現(xiàn))記錄的所有信息.
類似這樣的用法可以用于論壇每月排行榜,每月熱銷產(chǎn)品分析,按科目成績(jī)排名,等等.
上面的許多同志對(duì)子查詢存在有偏見與誤解,其實(shí)在一個(gè)好的數(shù)據(jù)分析程序中,子查詢可以簡(jiǎn)化很多程序邏輯.

Top
回復(fù)人:?gage(藍(lán)寶石)?(?)?信譽(yù):100?2003-3-25?11:17:11?得分:0

收藏

Top
回復(fù)人:?fvsl(楚龍)?(?)?信譽(yù):98?2003-3-25?13:09:51?得分:0

我收藏:)

Top
回復(fù)人:?zhusuhao(不以為然)?(?)?信譽(yù):101?2003-3-25?13:51:32?得分:0



Top
回復(fù)人:?fule(孤魂野鬼)?(?)?信譽(yù):100?2003-3-25?13:59:59?得分:0



Top
回復(fù)人:?98130(Oracle)?(?)?信譽(yù):100?2003-3-25?14:33:53?得分:0

回復(fù)人:?fenlin(千里之行,始于足下......)?(?)?信譽(yù):100??2003-03-24?12:21:00??得分:0?


??我也來(lái)湊熱鬧,呵呵......
<%
'取出隨機(jī)記錄
Randomize
RNumber?=?Int(Rnd*200)?+?1
SQL?=?"SELECT?*?FROM?Customers?WHERE?ID?=?"?&?RNumber
set?objRec?=?ObjConn.Execute(SQL)
Response.WriteRNumber?&?"?=?"?&?objRec("ID")?&?"?"?&?objRec("c_email")
%>
??

這種方法存在bug,有可能取不出數(shù)據(jù)來(lái),
最好還是還
select?top?1?*?from?tablename?order?by?newid()

Top
回復(fù)人:?hisi(海山)?(?)?信譽(yù):100?2003-3-25?16:05:23?得分:0

收藏...

Top
回復(fù)人:?lyexcel(冰上飛人)?(?)?信譽(yù):100?2003-3-25?16:36:58?得分:0

select?*?from?
????(select?top?5?*?from?
????????(select?*?from?
????????????(select?top?5?*?
?????????????from?GuestBook?
?????????????where?1=1?and?Deleted?=?false?
?????????????order?by?GuestID?desc)?
????????order?by?GuestID?asc)?
????order?by?GuestID?asc)?
order?by?GuestID?desc

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-25?18:37:44?得分:0

select?*?from?
????(select?top?5?*?from?
????????(select?*?from?
????????????(select?top?5?*?
?????????????from?GuestBook?
?????????????where?1=1?and?Deleted?=?false?
?????????????order?by?GuestID?desc)?
????????order?by?GuestID?asc)?
????order?by?GuestID?asc)?
order?by?GuestID?desc
這可是一個(gè)經(jīng)典的SQL.
大概再加幾層嵌套,查詢引擎都可以崩潰了..

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-26?9:49:49?得分:0

昨天剛寫的:
update?picture?set?IsUse='1'?where?instr(PicPath,'_1')>0

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-26?11:53:51?得分:0

下面的語(yǔ)句不是精華.但是卻是用很多用T-SQL進(jìn)行開發(fā)的同志所不了解的..
如何更新nText,Text,Image字段數(shù)據(jù)..
DECLARE?@ptrval?binary(16)
SELECT?@ptrval?=?TEXTPTR(LSD_Comment)?
???FROM?Legal_Dispute?WHERE?LD_Record_No=25?--得到指定記錄的nText文本指針
UPDATETEXT?Legal_Dispute.LSD_Comment?@ptrval?0?0?N'Insert?Text?Content?Into?Old?Content?Before'???---將數(shù)據(jù)插入在老數(shù)據(jù)之前.
很多同志在更新nText字段的時(shí)候使用一個(gè)記錄集取回ASP然后一次性用"UPDATE?set?fieldname='"?&?new?content?&?old?content?&?"'"的方式實(shí)現(xiàn)..
卻不知道,sql?string一次只能提交的string是有限制的,這樣一來(lái),實(shí)際的text,ntext永遠(yuǎn)也不可能存儲(chǔ)它所支持的最大長(zhǎng)度的數(shù)據(jù)..也遠(yuǎn)遠(yuǎn)不能達(dá)到使用nText字段的目的了..

Top
回復(fù)人:?jtmoon(逍遙小賊)?(?)?信譽(yù):234?2003-3-26?12:50:27?得分:0

呵呵,不錯(cuò)啊,收藏

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-26?17:49:24?得分:0

有好料快點(diǎn)貼,不久要揭貼嘍!

Top
回復(fù)人:?chinahuman(枯)?(?)?信譽(yù):105?2003-3-26?19:36:33?得分:0

高手們來(lái)看一看這個(gè)問題了http://expert.csdn.net/Expert/topic/1580/1580778.xml?temp=5.489528E-03
在線等了!

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-26?21:12:14?得分:0

to?上面的兄弟
SELECT?*?INTO?[D:\database.mdb].table4?FROM?[C:\database.mdb].table1
前提是ASP用戶對(duì)后者有讀權(quán)限.
前者有寫權(quán)限

Top
回復(fù)人:?guiguai(鬼怪)?(?)?信譽(yù):101?2003-3-26?22:09:06?得分:0

收藏!

Top
回復(fù)人:?wertou()?(?)?信譽(yù):100?2003-3-27?10:55:30?得分:0

select?*?from?studentinfo?where?not?exists(select?*?from?student?where?studentinfo.id=student.id)?and?系名稱='"&strdepartmentname&"'?and?專業(yè)名稱='"&strprofessionname&"'?order?by?性別,生源地,高考總成績(jī)

Top
回復(fù)人:?Swanzy(志遠(yuǎn))?(?)?信譽(yù):100?2003-3-27?11:57:47?得分:0

請(qǐng)問查詢時(shí)時(shí)有兩行相同的記錄,如何去掉一行?(其中包含TEXT數(shù)據(jù)類型)
select??brepeople,姓名,bbs_content.*?from?bbs_revert,bbs_content,bbs_userinfo?where?bauthor=職員id?and?brepeople='m043'?and?bbs_content.id=bid
顯示“我”參加的主題回復(fù)時(shí),如果本主題回復(fù)了兩次以上,那查詢的結(jié)果將有兩行以上的記錄。

Top
回復(fù)人:?huangang(H.G)?(?)?信譽(yù):100?2003-3-27?12:08:42?得分:0

select?*?form?a?like?%keywords%
模糊查詢

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-27?12:20:43?得分:0

to?Swanzy(志遠(yuǎn))?
包含有text類型數(shù)據(jù)是無(wú)法進(jìn)行消除重復(fù)值處理的..
因?yàn)樵趕ql?server中text處理為一個(gè)指針..
讀取并比較該字段需要專用的語(yǔ)法
如果要做,建議在存儲(chǔ)過程中做或?qū)⒃撟侄闻懦诒容^條件外

Top
回復(fù)人:?98130(Oracle)?(?)?信譽(yù):100?2003-3-27?12:41:06?得分:0

select?*?from?
????(select?top?5?*?from?
????????(select?*?from?
????????????(select?top?5?*?
?????????????from?GuestBook?
?????????????where?1=1?and?Deleted?=?false?
?????????????order?by?GuestID?desc)?
????????order?by?GuestID?asc)?
????order?by?GuestID?asc)?
order?by?GuestID?desc
我怎么運(yùn)行不了?

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-27?14:18:27?得分:0

to?98130(Oracle)?
下面的可以.但是好象看起來(lái)很沒有必要
select?top?1?num1?from?
????(select?top?5?num1?from?
????????(select?top?1?num1?from?
????????????(select?top?5?num1?
?????????????from?table1
??????????????order?by?num1?desc)?as?a
????????order?by?num1?asc)?as?b
????order?by?num1?asc)?as?c
order?by?num1?desc

Top
回復(fù)人:?tigerflyfly(小飛虎)?(?)?信譽(yù):100?2003-3-27?21:20:40?得分:0

取出最先的是select?top?*??from?tablename
取出最后的幾條是什么?

Top
回復(fù)人:?clipper_clipper(clipper_clipper)?(?)?信譽(yù):104?2003-3-27?21:46:59?得分:0

select?count(*)?from?tb_tablename
經(jīng)常用的,取記錄數(shù)

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-3-28?9:26:47?得分:0

t?tigerflyfly(小飛虎)
還是用select?top,只是排序倒過來(lái)即可,比如:
select?top?10?*?from?tablename?order?by?id?desc

Top
回復(fù)人:?entice(踏雪尋梅)?(?)?信譽(yù):106?2003-3-28?9:27:16?得分:0

to?tigerflyfly(小飛虎)
用排序呀。

Top
回復(fù)人:?xiaojiyi(小己乙)?(?)?信譽(yù):100?2003-3-28?11:15:44?得分:0

分頁(yè)語(yǔ)句
select?top?100?*?from?表名?where?id?not?in?(select?top?page_no*100?*?from?表名)
page_no是程序中的變量

Top
回復(fù)人:?xiaoshi(js真痛苦!我要被炒了)?(?)?信譽(yù):101?2003-3-28?11:42:47?得分:0

我收藏
中午來(lái)看

Top
回復(fù)人:?alu_ok(冬瓜茶)?(?)?信譽(yù):100?2003-3-28?13:16:31?得分:0

從數(shù)據(jù)庫(kù)直接輸出XML數(shù)據(jù):
select?text1,text2?from?table1?where?text1?like?'%alu_ok%'?for?xml?auto

Top
回復(fù)人:?alu_ok(冬瓜茶)?(?)?信譽(yù):100?2003-3-28?13:19:12?得分:0

UPDATE?titles
????SET?t.ytd_sales?=?t.ytd_sales?+?s.qty
????FROM?titles?t,?sales?s
????WHERE?t.title_id?=?s.title_id
????AND?s.ord_date?=?(SELECT?MAX(sales.ord_date)?FROM?sales)

Top
回復(fù)人:?PeterMCT(天天下雨1991)?(?)?信譽(yù):101?2003-3-28?13:21:02?得分:0

up

Top
回復(fù)人:?alu_ok(冬瓜茶)?(?)?信譽(yù):100?2003-3-28?13:21:07?得分:0

DELETE?authors?
FROM?(SELECT?TOP?10?*?FROM?authors)?AS?t1
WHERE?authors.au_id?=?t1.au_id

Top
回復(fù)人:?alu_ok(冬瓜茶)?(?)?信譽(yù):100?2003-3-28?13:22:26?得分:0

初始化表table1
TRUNCATE?TABLE?table1

Top
回復(fù)人:?lxxlily(笨鳥先飛)?(?)?信譽(yù):107?2003-3-28?13:31:43?得分:0

cnuninet(www.helloaspx.com)?:暈~~

Top
回復(fù)人:?zhjzh_zjz(虛心學(xué)習(xí),望多指教)?(?)?信譽(yù):117?2003-3-28?15:11:57?得分:0

從入庫(kù)信息表和入庫(kù)清單表中得期初期末庫(kù)存:
SELECT?a.mattype?as?mattype,?a.matname?as?matname,?a.spec?as?spec,a.indate?as?indate,?a.amount?AS?lastnum,?a.matsum?AS?lastsum,?
??????b.amount?AS?curnum,?b.matsum?AS?cursum
FROM?(SELECT?a.mattype,?a.matname,?a.spec,?TO_CHAR(a.indate,?'yyyy-mm')?AS?indate,?
??????????????SUM(b.amount)?AS?amount,?SUM(b.matsum)?AS?matsum
????????FROM?(SELECT?a.mattype,?a.matname,?a.spec,?a.indate,?SUM(nvl(a.amount,?0)?
??????????????????????-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?AS?amount,?SUM(nvl(a.matsum,?
??????????????????????0)?-?NVL(b.matsum,?0)?+?NVL(c.matsum,?0))?AS?matsum
????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
??????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
??????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
????????????????????????FROM?materialin?a,?matin?b
????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
????????????????WHERE?a.mattype?=?b.mattype?(+)?AND?a.mattype?=?c.mattype?(+)?AND?
??????????????????????a.matname?=?b.matname?(+)?AND?a.matname?=?c.matname?(+)?AND?
??????????????????????a.spec?=?b.spec?(+)?AND?a.spec?=?c.spec?(+)?AND?
??????????????????????a.indate?=?b.outdate?(+)?AND?a.indate?=?c.backdate?(+)
????????????????GROUP?BY?a.mattype,?a.matname,?a.spec,?a.indate
????????????????UNION
????????????????SELECT?b.mattype,?b.matname,?b.spec,?b.outdate,?SUM(nvl(a.amount,?0)?
??????????????????????-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?AS?amount,?SUM(nvl(a.matsum,?
??????????????????????0)?-?NVL(b.matsum,?0)?+?NVL(c.matsum,?0))?AS?matsum
????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
??????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
??????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
????????????????????????FROM?materialin?a,?matin?b
????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
????????????????WHERE?a.mattype?(+)?=?b.mattype?AND?b.mattype?=?c.mattype?(+)?AND?
??????????????????????a.matname?(+)?=?b.matname?AND?b.matname?=?c.matname?(+)?AND?
??????????????????????a.spec?(+)?=?b.spec?AND?b.spec?=?c.spec?(+)?AND?
??????????????????????a.indate?(+)?=?b.outdate?AND?b.outdate?=?c.backdate?(+)
????????????????GROUP?BY?b.mattype,?b.matname,?b.spec,?b.outdate
????????????????UNION
????????????????SELECT?c.mattype,?c.matname,?c.spec,?c.backdate,?SUM(nvl(a.amount,?0)?
??????????????????????-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?AS?amount,?SUM(nvl(a.matsum,?
??????????????????????0)?-?NVL(b.matsum,?0)?+?NVL(c.matsum,?0))?AS?matsum
????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
??????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
??????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
????????????????????????FROM?materialin?a,?matin?b
????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
????????????????WHERE?a.mattype?(+)?=?c.mattype?AND?b.mattype?(+)?=?c.mattype?AND?
??????????????????????a.matname?(+)?=?c.matname?AND?c.matname?=?b.matname?(+)?AND?
??????????????????????c.spec?=?a.spec?(+)?AND?c.spec?=?b.spec?(+)?AND?
??????????????????????c.backdate?=?b.outdate?(+)?AND?c.backdate?=?a.indate?(+)
????????????????GROUP?BY?c.mattype,?c.matname,?c.spec,?c.backdate)?a,
??????????????????(SELECT?a.mattype,?a.matname,?a.spec,?a.indate,?SUM(nvl(a.amount,?0)?
???????????????????????-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?AS?amount,?SUM(nvl(a.matsum,?
???????????????????????0)?-?NVL(b.matsum,?0)?+?NVL(c.matsum,?0))?AS?matsum
?????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
???????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
???????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
?????????????????????????FROM?materialin?a,?matin?b
?????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
?????????????????WHERE?a.mattype?=?b.mattype?(+)?AND?a.mattype?=?c.mattype?(+)?AND?
???????????????????????a.matname?=?b.matname?(+)?AND?a.matname?=?c.matname?(+)?AND?
???????????????????????a.spec?=?b.spec?(+)?AND?a.spec?=?c.spec?(+)?AND?
???????????????????????a.indate?=?b.outdate?(+)?AND?a.indate?=?c.backdate?(+)
?????????????????GROUP?BY?a.mattype,?a.matname,?a.spec,?a.indate
?????????????????UNION
?????????????????SELECT?b.mattype,?b.matname,?b.spec,?b.outdate?AS?indate,?
???????????????????????SUM(nvl(a.amount,?0)?-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?
???????????????????????AS?amount,?SUM(nvl(a.matsum,?0)?-?NVL(b.matsum,?0)?
???????????????????????+?NVL(c.matsum,?0))?AS?matsum
?????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
???????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
???????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
?????????????????????????FROM?materialin?a,?matin?b
?????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
?????????????????WHERE?a.mattype?(+)?=?b.mattype?AND?b.mattype?=?c.mattype?(+)?AND?
???????????????????????a.matname?(+)?=?b.matname?AND?b.matname?=?c.matname?(+)?AND?
???????????????????????a.spec?(+)?=?b.spec?AND?b.spec?=?c.spec?(+)?AND?
???????????????????????a.indate?(+)?=?b.outdate?AND?b.outdate?=?c.backdate?(+)
?????????????????GROUP?BY?b.mattype,?b.matname,?b.spec,?b.outdate
?????????????????UNION
?????????????????SELECT?c.mattype,?c.matname,?c.spec,?c.backdate?AS?indate,?
???????????????????????SUM(nvl(a.amount,?0)?-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?
???????????????????????AS?amount,?SUM(nvl(a.matsum,?0)?-?NVL(b.matsum,?0)?
???????????????????????+?NVL(c.matsum,?0))?AS?matsum
?????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
???????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
???????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
?????????????????????????FROM?materialin?a,?matin?b
?????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
?????????????????WHERE?a.mattype?(+)?=?c.mattype?AND?b.mattype?(+)?=?c.mattype?AND?
???????????????????????a.matname?(+)?=?c.matname?AND?c.matname?=?b.matname?(+)?AND?
???????????????????????c.spec?=?a.spec?(+)?AND?c.spec?=?b.spec?(+)?AND?
???????????????????????c.backdate?=?b.outdate?(+)?AND?c.backdate?=?a.indate?(+)
?????????????????GROUP?BY?c.mattype,?c.matname,?c.spec,?c.backdate)?b
????????WHERE?TO_CHAR(b.indate,?'yyyy-mm')?<=?TO_CHAR(a.indate,?'yyyy-mm')?AND?
??????????????a.mattype?=?b.mattype?(+)?AND?a.matname?=?b.matname?(+)?AND?
??????????????a.spec?=?b.spec?(+)
????????GROUP?BY?a.mattype,?a.matname,?a.spec,?TO_CHAR(a.indate,?'yyyy-mm'))?a,
---未完,待續(xù)

Top
回復(fù)人:?zhjzh_zjz(虛心學(xué)習(xí),望多指教)?(?)?信譽(yù):117?2003-3-28?15:13:01?得分:0

---接上面
??(SELECT?a.mattype,?a.matname,?a.spec,?TO_CHAR(a.indate,?'yyyy-mm')?AS?indate,?
???????????????SUM(b.amount)?AS?amount,?SUM(b.matsum)?AS?matsum
?????????FROM?(SELECT?a.mattype,?a.matname,?a.spec,?a.indate,?SUM(nvl(a.amount,?0)?
???????????????????????-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?AS?amount,?SUM(nvl(a.matsum,?
???????????????????????0)?-?NVL(b.matsum,?0)?+?NVL(c.matsum,?0))?AS?matsum
?????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
???????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
???????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
?????????????????????????FROM?materialin?a,?matin?b
?????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
?????????????????WHERE?a.mattype?=?b.mattype?(+)?AND?a.mattype?=?c.mattype?(+)?AND?
???????????????????????a.matname?=?b.matname?(+)?AND?a.matname?=?c.matname?(+)?AND?
???????????????????????a.spec?=?b.spec?(+)?AND?a.spec?=?c.spec?(+)?AND?
???????????????????????a.indate?=?b.outdate?(+)?AND?a.indate?=?c.backdate?(+)
?????????????????GROUP?BY?a.mattype,?a.matname,?a.spec,?a.indate
?????????????????UNION
?????????????????SELECT?b.mattype,?b.matname,?b.spec,?b.outdate,?SUM(nvl(a.amount,?0)?
???????????????????????-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?AS?amount,?SUM(nvl(a.matsum,?
???????????????????????0)?-?NVL(b.matsum,?0)?+?NVL(c.matsum,?0))?AS?matsum
?????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
???????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
???????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
?????????????????????????FROM?materialin?a,?matin?b
?????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
?????????????????WHERE?a.mattype?(+)?=?b.mattype?AND?b.mattype?=?c.mattype?(+)?AND?
???????????????????????a.matname?(+)?=?b.matname?AND?b.matname?=?c.matname?(+)?AND?
???????????????????????a.spec?(+)?=?b.spec?AND?b.spec?=?c.spec?(+)?AND?
???????????????????????a.indate?(+)?=?b.outdate?AND?b.outdate?=?c.backdate?(+)
?????????????????GROUP?BY?b.mattype,?b.matname,?b.spec,?b.outdate
?????????????????UNION
?????????????????SELECT?c.mattype,?c.matname,?c.spec,?c.backdate,?SUM(nvl(a.amount,?0)?
???????????????????????-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?AS?amount,?SUM(nvl(a.matsum,?
???????????????????????0)?-?NVL(b.matsum,?0)?+?NVL(c.matsum,?0))?AS?matsum
?????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
???????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
???????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
?????????????????????????FROM?materialin?a,?matin?b
?????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
?????????????????WHERE?a.mattype?(+)?=?c.mattype?AND?b.mattype?(+)?=?c.mattype?AND?
???????????????????????a.matname?(+)?=?c.matname?AND?c.matname?=?b.matname?(+)?AND?
???????????????????????c.spec?=?a.spec?(+)?AND?c.spec?=?b.spec?(+)?AND?
???????????????????????c.backdate?=?b.outdate?(+)?AND?c.backdate?=?a.indate?(+)
?????????????????GROUP?BY?c.mattype,?c.matname,?c.spec,?c.backdate)?a,
???????????????????(SELECT?a.mattype,?a.matname,?a.spec,?a.indate,?SUM(nvl(a.amount,?0)?
????????????????????????-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?AS?amount,?
????????????????????????SUM(nvl(a.matsum,?0)?-?NVL(b.matsum,?0)?+?NVL(c.matsum,?0))?
????????????????????????AS?matsum
??????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
????????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
????????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
??????????????????????????FROM?materialin?a,?matin?b
??????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
??????????????????WHERE?a.mattype?=?b.mattype?(+)?AND?a.mattype?=?c.mattype?(+)?AND?
????????????????????????a.matname?=?b.matname?(+)?AND?a.matname?=?c.matname?(+)?AND?
????????????????????????a.spec?=?b.spec?(+)?AND?a.spec?=?c.spec?(+)?AND?
????????????????????????a.indate?=?b.outdate?(+)?AND?a.indate?=?c.backdate?(+)
??????????????????GROUP?BY?a.mattype,?a.matname,?a.spec,?a.indate
??????????????????UNION
??????????????????SELECT?b.mattype,?b.matname,?b.spec,?b.outdate?AS?indate,?
????????????????????????SUM(nvl(a.amount,?0)?-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?
????????????????????????AS?amount,?SUM(nvl(a.matsum,?0)?-?NVL(b.matsum,?0)?
????????????????????????+?NVL(c.matsum,?0))?AS?matsum
??????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
????????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
????????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
??????????????????????????FROM?materialin?a,?matin?b
??????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
??????????????????WHERE?a.mattype?(+)?=?b.mattype?AND?b.mattype?=?c.mattype?(+)?AND?
????????????????????????a.matname?(+)?=?b.matname?AND?b.matname?=?c.matname?(+)?AND?
????????????????????????a.spec?(+)?=?b.spec?AND?b.spec?=?c.spec?(+)?AND?
????????????????????????a.indate?(+)?=?b.outdate?AND?b.outdate?=?c.backdate?(+)
??????????????????GROUP?BY?b.mattype,?b.matname,?b.spec,?b.outdate
??????????????????UNION
??????????????????SELECT?c.mattype,?c.matname,?c.spec,?c.backdate?AS?indate,?
????????????????????????SUM(nvl(a.amount,?0)?-?NVL(b.amount,?0)?+?NVL(c.amount,?0))?
????????????????????????AS?amount,?SUM(nvl(a.matsum,?0)?-?NVL(b.matsum,?0)?
????????????????????????+?NVL(c.matsum,?0))?AS?matsum
??????????????????FROM?(SELECT?a.mattype?AS?mattype,?a.matname?AS?matname,?
????????????????????????????????a.spec?AS?spec,?b.indate?AS?indate,?a.amount?AS?amount,?
????????????????????????????????a.matsum?AS?matsum,?b.matsource?AS?matsource
??????????????????????????FROM?materialin?a,?matin?b
??????????????????????????WHERE?b.serial?=?a.serial)?a,?matuse?b,?matback?c
??????????????????WHERE?a.mattype?(+)?=?c.mattype?AND?b.mattype?(+)?=?c.mattype?AND?
????????????????????????a.matname?(+)?=?c.matname?AND?c.matname?=?b.matname?(+)?AND?
????????????????????????c.spec?=?a.spec?(+)?AND?c.spec?=?b.spec?(+)?AND?
????????????????????????c.backdate?=?b.outdate?(+)?AND?c.backdate?=?a.indate?(+)
??????????????????GROUP?BY?c.mattype,?c.matname,?c.spec,?c.backdate)?b
?????????WHERE?TO_CHAR(b.indate,?'yyyy-mm')?<=?TO_CHAR(a.indate,?'yyyy-mm')?AND?
???????????????a.mattype?=?b.mattype?(+)?AND?a.matname?=?b.matname?(+)?AND?
???????????????a.spec?=?b.spec?(+)
?????????GROUP?BY?a.mattype,?a.matname,?a.spec,?TO_CHAR(a.indate,?'yyyy-mm'))?
??????b
WHERE?a.mattype?=?b.mattype?(+)?AND?a.matname?=?b.matname?(+)?AND?
??????a.spec?=?b.spec?(+)?AND?TO_DATE(a.indate,?'yyyy-mm')?
??????=?ADD_MONTHS(TO_DATE(b.indate,?'yyyy-mm'),?1)
--語(yǔ)句完畢

Top
回復(fù)人:?zhjzh_zjz(虛心學(xué)習(xí),望多指教)?(?)?信譽(yù):117?2003-3-28?15:15:27?得分:0

上面用的是Oracle數(shù)據(jù)庫(kù)。由于涉及到雙向外連接,所以很長(zhǎng)

Top
回復(fù)人:?zhongjz(小海螺)?(?)?信譽(yù):105?2003-3-28?15:46:39?得分:5

從數(shù)據(jù)庫(kù)中去一年的各單位電話費(fèi)統(tǒng)計(jì)(電話費(fèi)定額賀電化肥清單兩個(gè)表來(lái)源)
SELECT?a.userper,?a.tel,?a.standfee,?TO_CHAR(a.telfeedate,?'yyyy')?AS?telyear,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'01',?a.factration))?AS?JAN,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'02',?a.factration))?AS?FRI,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'03',?a.factration))?AS?MAR,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'04',?a.factration))?AS?APR,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'05',?a.factration))?AS?MAY,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'06',?a.factration))?AS?JUE,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'07',?a.factration))?AS?JUL,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'08',?a.factration))?AS?AGU,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'09',?a.factration))?AS?SEP,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'10',?a.factration))?AS?OCT,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'11',?a.factration))?AS?NOV,
??????SUM(decode(TO_CHAR(a.telfeedate,?'mm'),?'12',?a.factration))?AS?DEC
FROM?(SELECT?a.userper,?a.tel,?a.standfee,?b.telfeedate,?b.factration
????????FROM?TELFEESTAND?a,?TELFEE?b
????????WHERE?a.tel?=?b.telfax)?a
GROUP?BY?a.userper,?a.tel,?a.standfee,?TO_CHAR(a.telfeedate,?'yyyy')

Top
回復(fù)人:?zzlcn()?(?)?信譽(yù):86?2003-3-28?17:24:15?得分:0

請(qǐng)問如果有?10?萬(wàn)?條數(shù)據(jù)?該怎么查詢,我一查詢就出錯(cuò)
如果是3萬(wàn)條還可以接受,但是到了3萬(wàn)條以上就不穩(wěn)定!
我用了?sqlserver?也沒有用
10?萬(wàn)條數(shù)據(jù)來(lái)一次分頁(yè)顯示居然要?10-15秒的超長(zhǎng)時(shí)間!!!!!
如果在分頁(yè)顯示中查詢,立即告吹!!!
asp?和?asp.net?我都試用過(+?ms?sqlserver)
均是如此
是不是?asp?和?asp.net?都是垃圾中的垃圾!!!

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-28?17:40:16?得分:0

大量復(fù)雜的數(shù)據(jù)分析,在結(jié)構(gòu)設(shè)計(jì)上就應(yīng)該要考慮進(jìn)去.適當(dāng)設(shè)置一些字段或表存儲(chǔ)分段統(tǒng)計(jì)信息.
否則再好的數(shù)據(jù)庫(kù)都撐不住的..

Top
回復(fù)人:?sishuo(思鑠)?(?)?信譽(yù):100?2003-3-29?9:39:01?得分:0

好,收了。

Top
回復(fù)人:?huijunzi(Cyril)?(?)?信譽(yù):97?2003-3-30?16:49:18?得分:5

有意思,我也來(lái)一個(gè),解決跳號(hào)的問題:
select?min(bh)+1?from?Table1?where?bh+1?not?in(select?bh?from?Table1)

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-3-31?9:50:13?得分:0

進(jìn)行復(fù)雜數(shù)據(jù)分析還有一種趨勢(shì)那就是使用數(shù)據(jù)倉(cāng)庫(kù)(Data?Houseware)和OLAP.

Top
回復(fù)人:?bkss(白開水水)?(?)?信譽(yù):100?2003-4-1?11:09:20?得分:0

哈哈,我也來(lái)湊熱鬧。。。
DECLARE?@QuitMedNo?char(13)?
DECLARE?@PreRecipeNo?char(13),@PreRecipeXNo?char(3)?
Declare?@zyxh?char(12),@kdks?char(8)?
DECLARE?@DepotName?char(10)?
BEGIN?TRAN?
if?not?exists(select?擺藥單號(hào)?from??擺藥單?where?狀態(tài)='00'?and?擺藥單號(hào)=@PutMedNo)
begin
??return?0
end
EXECUTE?Sp_GetBillNo?@QuitMedNo?output,'D'?
INSERT?INTO?[退藥]([退藥序號(hào)],?[操作員],?[退藥時(shí)間],?[退藥說(shuō)明])?
?????VALUES(@QuitMedNo,@Operator,cast(getdate()?as?smalldatetime),@Intro)?
if?(@@error<>0?or?@@rowcount=0)?
????begin?
??rollback?transaction
??raiserror('插入退藥表失敗',16,-1)
??return?1?
????end
DECLARE?PutMed_Cursor?CURSOR?FOR
SELECT?DISTINCT?A.處方號(hào),A.處方序號(hào),B.住院序號(hào),B.科室,C.名稱?as?擺藥區(qū)?FROM?擺藥單明細(xì)?A?inner?join?處方?B?ON?A.處方號(hào)?=B.處方號(hào)?AND?A.處方序號(hào)=B.處方序號(hào)?
INNER?JOIN?擺藥區(qū)?C?ON?B.擺藥區(qū)=C.代碼?WHERE?A.擺藥單號(hào)=@PutMedNo?
OPEN?PutMed_Cursor
FETCH?NEXT?FROM?PutMed_Cursor?INTO?@PreRecipeNo,?@PreRecipeXNo,@zyxh,@kdks,@DepotName
WHILE?@@FETCH_STATUS?=?0
BEGIN
EXEC?usp_QuitBillDetail?@QuitMedNo?,@PutMedNo,@PreRecipeNo,@PreRecipeXNo,@zyxh,@kdks,@fsks,@DepotName
--另一個(gè)存儲(chǔ)過程
if?(@@error<>0)?
????begin?
??rollback?transaction
??CLOSE?PutMed_Cursor
??--DEALLOCATE?PutMed_Cursor
??raiserror('更新退單處方明細(xì)失敗',16,-1)
??return?1?
????end
????FETCH?NEXT?FROM?PutMed_Cursor?INTO?@PreRecipeNo,?@PreRecipeXNo,@zyxh,@kdks
END

Top
回復(fù)人:?bkss(白開水水)?(?)?信譽(yù):100?2003-4-1?11:21:36?得分:10

個(gè)人認(rèn)為,偶寫了這么久的SQL,只說(shuō)語(yǔ)法很無(wú)聊,語(yǔ)句的涵義與靈活的組合很重要,下面這個(gè)是寫的一個(gè)藥品管理的存儲(chǔ)過程的一句,很經(jīng)典:
UPDATE?藥房庫(kù)存?SET?庫(kù)存數(shù)量=庫(kù)存數(shù)量-B.用量?FROM?[藥房庫(kù)存]?A?,
(?Select?sum(用量)?as?用量,藥品價(jià)碼?FROM?處方項(xiàng)?
????WHERE?處方號(hào)=@RecipeNo?AND?處方序號(hào)=@RecipeXNo?
??GROUP?BY?藥品價(jià)碼
)?B??WHERE?A.藥品價(jià)碼=B.藥品價(jià)碼?AND?A.庫(kù)房名稱=@DepotName
這是一個(gè)參照B表將A表中庫(kù)存一一修改,而B表中存在一個(gè)求和,A表也與B表關(guān)聯(lián),同時(shí)要滿足A表?xiàng)l件。

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-4-1?11:26:50?得分:0

是的..SQL中應(yīng)用的經(jīng)典應(yīng)該只考慮SQL查詢的應(yīng)用..
存儲(chǔ)過程已經(jīng)使用控制語(yǔ)法操作了,和別的程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)算法沒什么區(qū)別..

Top
回復(fù)人:?yexiao(葉開)?(?)?信譽(yù):100?2003-4-1?14:11:35?得分:0

gz

Top
回復(fù)人:?rong451(rong451)?(?)?信譽(yù):100?2003-4-1?15:43:10?得分:0

very?good?我一定收藏!!!

Top
回復(fù)人:?gengwei80(gengwei)?(?)?信譽(yù):99?2003-4-2?9:40:27?得分:0

create?or?replace?procedure?p_table
(
p_g3e_fno?g3e_features_optable.g3e_fno%type
)
as
v_xlmc?VARCHAR2(12);
v_XLDM?VARCHAR2(5);
cursor?c_table?IS
select?g3e_table?from?g3e_component?where?g3e_cno=(select?g3e_primaryattributecno
??from?g3e_features_optable?where?g3e_fno=p_g3e_fno);
type?t_sor?is?ref?cursor;
v_sor?t_sor;
str?varchar2(50);
begin
??for?v_table?in??c_table??loop
???str:='select?xlmc,xldm?from?'||v_table.g3e_table;
????dbms_output.put_line(v_table.g3e_table);
???open?v_sor?for?str;
???loop
???fetch?v_sor?into?v_xlmc,v_xldm;
????dbms_output.put_line('hello?g3e_table');
????dbms_output.put_line(v_xlmc||'?'||v_xldm);
???exit?when?v_sor%notfound;
???end?loop;
???close?v_sor;
??end?loop;
end?p_table;
?

個(gè)人主頁(yè)?|?引用?|?返回???
?


回復(fù):[分享]SQl語(yǔ)句學(xué)習(xí)專題
晴天發(fā)表評(píng)論于2004-10-26?11:18:00??
Top
回復(fù)人:?bloodsha(huangxi)?(?)?信譽(yù):98?2003-4-3?8:58:06?得分:0

學(xué)

Top
回復(fù)人:?csdntoll(低調(diào)慣了)?(?)?信譽(yù):147?2003-4-3?11:40:16?得分:0

回復(fù)人:?csdntoll(toll)?(?)?信譽(yù):100??2003-3-21?10:02:00??得分:0?
??
我決定:把200分中的180分,獎(jiǎng)給貼出最精妙的SQL的高手!
-------------------------------------------------------------------
想揭貼,可是為難了:
我要遵守自己說(shuō)過的話(如上),可我菜,鑒別能力有限,怎么辦?

Top
回復(fù)人:?wilsonGao(笑傲江湖)?(?)?信譽(yù):101?2003-4-3?13:29:11?得分:0

如何用一句語(yǔ)句實(shí)現(xiàn)兩個(gè)表的關(guān)鍵字倒換?

Top
回復(fù)人:?pyz8000(黑洞)?(?)?信譽(yù):101?2003-4-3?18:48:04?得分:0

暈倒,,,收藏~~

Top
回復(fù)人:?chinahuman(枯)?(?)?信譽(yù):105?2003-4-3?18:50:07?得分:0

有沒有辦法一條語(yǔ)句實(shí)現(xiàn)以下功能:比如一個(gè)新聞系統(tǒng)里有很多個(gè)管理員,在添加過程中每條都記錄管理員的ID,現(xiàn)想根據(jù)用戶ID來(lái)實(shí)現(xiàn)統(tǒng)計(jì)它們添加的條數(shù)?

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-4-3?19:29:42?得分:0

to??chinahuman(枯)?
一個(gè)group?by和一個(gè)聚合函數(shù)(count)就可以了..
select?count(Title)?from?news?group?by?creade_by
如果需要得到除非聚合字段外的詳細(xì)信息那么就得使用相關(guān)子查詢了..

Top
回復(fù)人:?ld_key(什么名字也想)?(?)?信譽(yù):100?2003-4-4?9:59:55?得分:0

markable

Top
回復(fù)人:?superdullwolf(超級(jí)大笨狼)?(?)?信譽(yù):99?2003-4-4?22:04:45?得分:0

看我的,四表聯(lián)查問題:
select?*?from?a?left?inner?join?b?on?a.a=b.b?right?inner?join?c?on?a.a=c.c??inner?join?d?on?a.a=d.d?where?.....

Top
回復(fù)人:?superdullwolf(超級(jí)大笨狼)?(?)?信譽(yù):99?2003-4-4?22:11:39?得分:10

應(yīng)聘做了一個(gè)小程序,在多人中表現(xiàn)最好,高興,散分100!!是關(guān)于sql查詢顯示的
題目大概是SQL?????表1:班級(jí)/老師????表2學(xué)生/班級(jí)????????表三數(shù)學(xué)/學(xué)生??????表4語(yǔ)文/學(xué)生
查詢顯示結(jié)果大概是這樣:
班級(jí)1??老師1
學(xué)生1???數(shù)學(xué)??語(yǔ)文
學(xué)生2???數(shù)學(xué)??語(yǔ)文
班級(jí)2??老師1
學(xué)生1???數(shù)學(xué)??語(yǔ)文
學(xué)生2???數(shù)學(xué)??語(yǔ)文
不及格:
學(xué)生1???班級(jí)1?老師1??數(shù)學(xué)??語(yǔ)文?
學(xué)生1???班級(jí)1?老師1??數(shù)學(xué)??語(yǔ)文
還有錄入學(xué)生和成績(jī)的界面
用到了多表之間的inner?join??on?語(yǔ)句,而且我顯示的很漂亮,靠,做了一下午,我好想抽煙啊,當(dāng)時(shí):)
看我的,四表聯(lián)查問題:
select?*?from?a?left?inner?join?b?on?a.a=b.b?right?inner?join?c?on?a.a=c.c??inner?join?d?on?a.a=d.d?where?.....

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-4-7?9:43:55?得分:0

左連接右連接內(nèi)連接全部上馬,的確經(jīng)典哦.
據(jù)說(shuō)你寫過上萬(wàn)行代碼,大概這就是最經(jīng)典的一段代碼了吧.

Top
回復(fù)人:?zady(森林木)?(?)?信譽(yù):100?2003-4-7?14:56:01?得分:5

需求:
得到表中最小的未使用的ID號(hào)。
例:
table?Name:Handle
HandleID
--------
1
2
5
6
7
--5?Records
執(zhí)行結(jié)果須為3
解決:
SELECT?(CASE?WHEN?EXISTS(SELECT?*?FROM?Handle?b?WHERE?b.HandleID?=?1)?THEN?MIN(HandleID)?+?1?ELSE?1?END)?as?HandleID
FROM??Handle
WHERE?NOT?HandleID?IN?(SELECT?a.HandleID?-?1?FROM?Handle?a)

Top
回復(fù)人:?Iamfish(呆魚)?(?)?信譽(yù):105?2003-4-8?13:36:00?得分:80

兩臺(tái)SQL服務(wù)器上的一個(gè)數(shù)據(jù)表同步!
drop?procedure?dbSync
GO
/*?????數(shù)據(jù)同步??????????????????????*/
CREATE?PROCEDURE?dbSync?
???????@sTabelName??varchar(255),????--要同步的表名
???????@sKeyField???varchar(255),????--關(guān)鍵字段
???????@sServer?????varchar(255),????--服務(wù)器名稱或IP
???????@sUserName???varchar(255),????--登錄到服務(wù)器的用戶名,一般為sa
???????@sPassWord???varchar(32)??????--用戶登錄到服務(wù)器的密碼?
AS
???/*刪除臨時(shí)表*/
??if?exists?(select?*?from?dbo.sysobjects?where?id?=?object_id(N'tempTbl')?and?OBJECTPROPERTY(id,?N'IsUserTable')?=?1)
??drop?table?tempTbl
??
????????????????
??declare?@sql?VARCHAR(2000)?
??/*把表@sTabelName[遠(yuǎn)程]的數(shù)據(jù)拷貝到臨時(shí)表*/
???
??set?@sql='select?*?into?tempTbl?from?'
??set?@sql=@sql?+?'?OPENDATASOURCE(?'
??set?@sql=@sql?+?'''SQLOLEDB.1'','
??set?@sql=@sql?+?'''Persist?Security?Info=True;User?ID='?+?@sUserName
??set?@sql=@sql?+?';Password='?+?@sPassWord
??set?@sql=@sql?+?';Initial?Catalog=toys;Data?Source='?+?@sServer
??set?@sql=@sql?+?''').toys.dbo.'+@sTabelName
??EXEC(@sql)??
??
??/*?把@sTabelName[本地]中的@sTabelName[遠(yuǎn)程]表中沒有的數(shù)據(jù)插入到臨時(shí)表中*/
??set?@sql='insert?into?tempTbl?select?*?from?'+@sTabelName+'?where?['+@sKeyField+']?not?in?(select?['+@sKeyField+']?from?tempTbl)'
??EXEC(@sql)
??
??/*清空表@sTabelName[本地]*/
??set?@sql='truncate?table?'+@sTabelName
??EXEC(@sql)
??
??--取得列名
??declare?@MySql?VARCHAR(2000)
??set?@MySql=''
??declare?@title?varchar(20)
??DECLARE?titles_cursor?CURSOR?FOR?
??SELECT?name?from?syscolumns?where?id=object_id(@sTabelName)
??OPEN?titles_cursor
??FETCH?NEXT?FROM?titles_cursor?INTO?@title
??WHILE?@@FETCH_STATUS?=?0
??BEGIN
????if?@title<>'id'?
????begin
??????if?@MySql?=?''
????????set?@MySql?=?@MySql?+?@title
??????else
????????set?@MySql?=?@MySql?+?','?+?@title
????end
????FETCH?NEXT?FROM?titles_cursor?INTO?@title
??END
??CLOSE?titles_cursor
??DEALLOCATE?titles_cursor
??--取列名結(jié)束
??/*把臨時(shí)表的內(nèi)容插入到表@sTabelName[本地]*/
??set?@sql='insert?into?'+@sTabelName+'?select?'+@MySql+'?from?tempTbl'
??EXEC(@sql)?
??/*刪除臨時(shí)表*/
??if?exists?(select?*?from?dbo.sysobjects?where?id?=?object_id(N'tempTbl')?and?OBJECTPROPERTY(id,?N'IsUserTable')?=?1)
??drop?table?tempTbl
GO

Top
回復(fù)人:?lizongqi(英雄啊)?(?)?信譽(yù):100?2003-4-8?15:02:07?得分:0

收藏ing..

Top
回復(fù)人:?Swanzy(志遠(yuǎn))?(?)?信譽(yù):100?2003-4-8?18:06:08?得分:0

收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏收藏

Top
回復(fù)人:?zhyx21century(zhyx)?(?)?信譽(yù):100?2003-4-9?11:19:17?得分:0

UP

Top
回復(fù)人:?kingkout(kingkout)?(?)?信譽(yù):100?2003-4-9?14:05:22?得分:0

GZ

Top
回復(fù)人:?xxl0914(microlin)?(?)?信譽(yù):105?2003-4-9?14:23:49?得分:0

用sql語(yǔ)句對(duì)不同的幾張表做笛卡爾積

Top
回復(fù)人:?lizongqi(英雄啊)?(?)?信譽(yù):100?2003-4-10?10:44:56?得分:0

收藏ing....

Top
回復(fù)人:?xieyj(快樂天使)?(?)?信譽(yù):103?2003-4-11?8:36:16?得分:5

查找一個(gè)已知字段所在的表名:
Select?Name?From?Sysobjects?Where?Id?in?(select?id?from?syscolumns?where?name='字段名')

Top
回復(fù)人:?leeeel(三角比三星差?)?(?)?信譽(yù):100?2003-4-11?8:55:15?得分:0

強(qiáng)列地反對(duì)多個(gè) Select?套在一個(gè)語(yǔ)句中使用 !

Top
回復(fù)人:?zhaoming1112(隨風(fēng)往事)?(?)?信譽(yù):100?2003-4-11?11:44:58?得分:0

SELECT套在一起,好用,我不反對(duì)。

Top
回復(fù)人:?csdnshao(如水人生)?(?)?信譽(yù):105?2003-4-11?11:50:17?得分:0

mark

Top
回復(fù)人:?cuoban(搓板)?(?)?信譽(yù):100?2003-4-11?14:57:58?得分:5

前些日子剛寫的
說(shuō)明:進(jìn)行判斷,得出兩種應(yīng)納稅額。
SELECT?姓名,?BM?AS?部門,?SF1?AS?實(shí)發(fā),?SFZH?AS?身份證,?Jjje?AS?獎(jiǎng)金,?SF1?+?Jjje?-?860?AS?應(yīng)納所得,?XL?AS?學(xué)歷,?NTG?AS?性別,?GWW?AS?職務(wù),?round((CASE?WHEN?(SF1?+?Jjje?-?860?<?500)?THEN?(SF1?+?Jjje?-?860)?*?0.05?ELSE?CASE?WHEN?(SF1?+?Jjje?-?860?>?500)?THEN?(SF1?+?GJJ?-?860)?*?0.10?-?25?END?END),?2)?AS?應(yīng)納稅額?FROM?GZ20029?WHERE?(sf1?+?Jjje)?>?860

Top
回復(fù)人:?lanyd(山雨欲來(lái)風(fēng)滿樓)?(?)?信譽(yù):100?2003-4-11?16:13:44?得分:0

強(qiáng)!
看完這些,我也成sql專家了,哈哈

Top
回復(fù)人:?750906(750906)?(?)?信譽(yù):105?2003-4-11?16:29:33?得分:0

SELECT?A.*,?B.ColumnString?AS?ColumnString,
??????????(SELECT?COUNT(StatuteId)
?????????FROM?StatuteLib_Body
?????????WHERE?ColumnId?IN
???????????????????(SELECT?ColumnId
??????????????????FROM?StatuteLib_ColumnString
??????????????????WHERE?ColumnString?LIKE?B.ColumnString?+?'%'))?AS?StatuteCount
FROM?cw25109.StatuteLib_Column?A?INNER?JOIN
??????cw25109.StatuteLib_ColumnString?B?ON?A.ColumnId?=?B.ColumnId

Top
回復(fù)人:?Swanzy(志遠(yuǎn))?(?)?信譽(yù):100?2003-4-12?11:04:11?得分:0

如何查詢表中為空值的所有字段內(nèi)容?

Top
回復(fù)人:?xdk(冼德錕)?(?)?信譽(yù):97?2003-4-12?11:37:01?得分:0

好...我是來(lái)?yè)尫旨邮詹氐?..

Top
回復(fù)人:?yu_shi_bin(清風(fēng))?(?)?信譽(yù):100?2003-4-14?13:13:18?得分:0

mark

Top
回復(fù)人:?sohi(阿梓)?(?)?信譽(yù):100?2003-4-15?8:20:17?得分:0

good

Top
回復(fù)人:?laker_tmj(laker)?(?)?信譽(yù):100?2003-4-15?12:22:45?得分:0

up

Top
回復(fù)人:?cboy2003(三碗(cpubook.com))?(?)?信譽(yù):100?2003-4-15?12:26:13?得分:0

不錯(cuò)
全部收了,我把常用的,最最普通的貼出來(lái)大家看看吧,我是對(duì)上面的某些半知,對(duì)自己貼的
還能用用,哈哈
SQL常用命令使用方法:?
(1)?數(shù)據(jù)記錄篩選:?
sql="select?*?from?數(shù)據(jù)表?where?字段名=字段值?order?by?字段名?[desc]"?
sql="select?*?from?數(shù)據(jù)表?where?字段名?like?'%字段值%'?order?by?字段名?[desc]"?
sql="select?top?10?*?from?數(shù)據(jù)表?where?字段名?order?by?字段名?[desc]"?
sql="select?*?from?數(shù)據(jù)表?where?字段名?in?('值1','值2','值3')"?
sql="select?*?from?數(shù)據(jù)表?where?字段名?between?值1?and?值2"?
(2)?更新數(shù)據(jù)記錄:?
sql="update?數(shù)據(jù)表?set?字段名=字段值?where?條件表達(dá)式"?
sql="update?數(shù)據(jù)表?set?字段1=值1,字段2=值2?……?字段n=值n?where?條件表達(dá)式"?
(3)?刪除數(shù)據(jù)記錄:?
sql="delete?from?數(shù)據(jù)表?where?條件表達(dá)式"?
sql="delete?from?數(shù)據(jù)表"?(將數(shù)據(jù)表所有記錄刪除)?
(4)?添加數(shù)據(jù)記錄:?
sql="insert?into?數(shù)據(jù)表?(字段1,字段2,字段3?…)?valuess?(值1,值2,值3?…)"?
sql="insert?into?目標(biāo)數(shù)據(jù)表?select?*?from?源數(shù)據(jù)表"?(把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)?
(5)?數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù):?
AVG(字段名)?得出一個(gè)表格欄平均值?
COUNT(*|字段名)?對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)?
MAX(字段名)?取得一個(gè)表格欄最大的值?
MIN(字段名)?取得一個(gè)表格欄最小的值?
SUM(字段名)?把數(shù)據(jù)欄的值相加?
引用以上函數(shù)的方法:?
sql="select?sum(字段名)?as?別名?from?數(shù)據(jù)表?where?條件表達(dá)式"?
set?rs=conn.excute(sql)?
用?rs("別名")?獲取統(tǒng)的計(jì)值,其它函數(shù)運(yùn)用同上。?
(5)?數(shù)據(jù)表的建立和刪除:?
CREATE?TABLE?數(shù)據(jù)表名稱(字段1?類型1(長(zhǎng)度),字段2?類型2(長(zhǎng)度)?……?)?
例:CREATE?TABLE?tab01(name?varchar(50),datetime?default?now())?
DROP?TABLE?數(shù)據(jù)表名稱?(永久性刪除一個(gè)數(shù)據(jù)表)?

Top
回復(fù)人:?zigzag81814()?(?)?信譽(yù):100?2003-4-15?13:09:38?得分:0



Top
回復(fù)人:?skyswan(施望)?(?)?信譽(yù):100?2003-4-15?13:33:36?得分:0

怎么都是用在Sql?Server上的。
有好多是不能用在Oracle的PL/SQL上的
?
?
SQL語(yǔ)法參考手冊(cè)?
2001年3月22日?
DB2?提供了關(guān)連式資料庫(kù)的查詢語(yǔ)言?SQL?(Structured?Query?Language),是一種非常口語(yǔ)化、既易學(xué)又易懂的語(yǔ)法。此一語(yǔ)言幾乎是每個(gè)資料庫(kù)系統(tǒng)都必須提供的,用以表示關(guān)連式的操作,包含了資料的定義(DDL)以及資料的處理(DML)。SQL原來(lái)拼成SEQUEL,這語(yǔ)言的原型以"系統(tǒng)?R"的名字在?IBM?圣荷西實(shí)驗(yàn)室完成,經(jīng)過IBM內(nèi)部及其他的許多使用性及效率測(cè)試,其結(jié)果相當(dāng)令人滿意,并決定在系統(tǒng)R?的技術(shù)基礎(chǔ)發(fā)展出來(lái)?IBM?的產(chǎn)品。而且美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(ANSI)及國(guó)際標(biāo)準(zhǔn)化組織(ISO)在1987遵循一個(gè)幾乎是以?IBM?SQL?為基礎(chǔ)的標(biāo)準(zhǔn)關(guān)連式資料語(yǔ)言定義。
一、資料定義?DDL(Data?Definition?Language)?
資料定語(yǔ)言是指對(duì)資料的格式和形態(tài)下定義的語(yǔ)言,他是每個(gè)資料庫(kù)要建立時(shí)候時(shí)首先要面對(duì)的,舉凡資料分哪些表格關(guān)系、表格內(nèi)的有什麼欄位主鍵、表格和表格之間互相參考的關(guān)系等等,都是在開始的時(shí)候所必須規(guī)劃好的。
1、建表格:
CREATE?TABLE?table_name(?
column1?DATATYPE?[NOT?NULL]?[NOT?NULL?PRIMARY?KEY],?
column2?DATATYPE?[NOT?NULL],
...)
說(shuō)明: 
DATATYPE?--是資料的格式,詳見表。
NUT?NULL?--可不可以允許資料有空的(尚未有資料填入)。
PRIMARY?KEY?--是本表的主鍵。
2、更改表格 
ALTER?TABLE?table_name?
ADD?COLUMN?column_name?DATATYPE?
說(shuō)明:增加一個(gè)欄位(沒有刪除某個(gè)欄位的語(yǔ)法。
ALTER?TABLE?table_name
ADD?PRIMARY?KEY?(column_name)
說(shuō)明:更改表得的定義把某個(gè)欄位設(shè)為主鍵。
ALTER?TABLE?table_name
DROP?PRIMARY?KEY?(column_name)
說(shuō)明:把主鍵的定義刪除。
3、建立索引 
CREATE?INDEX?index_name?ON?table_name?(column_name)
說(shuō)明:對(duì)某個(gè)表格的欄位建立索引以增加查詢時(shí)的速度。
4、刪除 
DROP?table_name
DROP?index_name
二、的資料形態(tài)?DATATYPEs
smallint
16?位元的整數(shù)。
interger
32?位元的整數(shù)。
decimal(p,s)
p?精確值和?s?大小的十進(jìn)位整數(shù),精確值p是指全部有幾個(gè)數(shù)(digits)大小值,s是指小數(shù)
點(diǎn)後有幾位數(shù)。如果沒有特別指定,則系統(tǒng)會(huì)設(shè)為?p=5;?s=0?。?
float
32位元的實(shí)數(shù)。
double
64位元的實(shí)數(shù)。
char(n)
n?長(zhǎng)度的字串,n不能超過?254。
varchar(n)
長(zhǎng)度不固定且其最大長(zhǎng)度為?n?的字串,n不能超過?4000。
graphic(n)
和?char(n)?一樣,不過其單位是兩個(gè)字元?double-bytes,?n不能超過127。這個(gè)形態(tài)是為
了支援兩個(gè)字元長(zhǎng)度的字體,例如中文字。
vargraphic(n)
可變長(zhǎng)度且其最大長(zhǎng)度為?n?的雙字元字串,n不能超過?2000。
date
包含了?年份、月份、日期。
time
包含了?小時(shí)、分鐘、秒。
timestamp
包含了?年、月、日、時(shí)、分、秒、千分之一秒。
三、資料操作?DML?(Data?Manipulation?Language)
資料定義好之後接下來(lái)的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update)?、刪除資料(delete)四種模式,以下分?別介紹他們的語(yǔ)法:
1、增加資料:
INSERT?INTO?table_name?(column1,column2,...)
VALUES?(?value1,value2,?...)
說(shuō)明:
1.若沒有指定column?系統(tǒng)則會(huì)按表格內(nèi)的欄位順序填入資料。
2.欄位的資料形態(tài)和所填入的資料必須吻合。
3.table_name?也可以是景觀?view_name。
INSERT?INTO?table_name?(column1,column2,...)
SELECT?columnx,columny,...?FROM?another_table
說(shuō)明:也可以經(jīng)過一個(gè)子查詢(subquery)把別的表格的資料填入。
2、查詢資料:
基本查詢
SELECT?column1,columns2,...
FROM?table_name
說(shuō)明:把table_name?的特定欄位資料全部列出來(lái)
SELECT?*
FROM?table_name
WHERE?column1?=?xxx?
[AND?column2?>?yyy]?[OR?column3?<>?zzz]
說(shuō)明:
1.'*'表示全部的欄位都列出來(lái)。
2.WHERE?之後是接條件式,把符合條件的資料列出來(lái)。
SELECT?column1,column2
FROM?table_name
ORDER?BY?column2?[DESC]
說(shuō)明:ORDER?BY?是指定以某個(gè)欄位做排序,[DESC]是指從大到小排列,若沒有指明,則是從小到大
排列
組合查詢
組合查詢是指所查詢得資料來(lái)源并不只有單一的表格,而是聯(lián)合一個(gè)以上的
表格才能夠得到結(jié)果的。
SELECT?*
FROM?table1,table2
WHERE?table1.colum1=table2.column1
說(shuō)明:
1.查詢兩個(gè)表格中其中?column1?值相同的資料。
2.當(dāng)然兩個(gè)表格相互比較的欄位,其資料形態(tài)必須相同。
3.一個(gè)復(fù)雜的查詢其動(dòng)用到的表格可能會(huì)很多個(gè)。
整合性的查詢:
SELECT?COUNT?(*)?
FROM?table_name
WHERE?column_name?=?xxx
說(shuō)明:
查詢符合條件的資料共有幾筆。
SELECT?SUM(column1)
FROM?table_name
說(shuō)明:
1.計(jì)算出總和,所選的欄位必須是可數(shù)的數(shù)字形態(tài)。
2.除此以外還有?AVG()?是計(jì)算平均、MAX()、MIN()計(jì)算最大最小值的整合性查詢。
SELECT?column1,AVG(column2)
FROM?table_name
GROUP?BY?column1
HAVING?AVG(column2)?>?xxx
說(shuō)明:
1.GROUP?BY:?以column1?為一組計(jì)算?column2?的平均值必須和?AVG、SUM等整合性查詢的關(guān)鍵字
一起使用。?
2.HAVING?:?必須和?GROUP?BY?一起使用作為整合性的限制。
復(fù)合性的查詢
SELECT?*
FROM?table_name1
WHERE?EXISTS?(
SELECT?*
FROM?table_name2
WHERE?conditions?)
說(shuō)明:
1.WHERE?的?conditions?可以是另外一個(gè)的?query。
2.EXISTS?在此是指存在與否。
SELECT?*
FROM?table_name1
WHERE?column1?IN?(
SELECT?column1?
FROM?table_name2
WHERE?conditions?)
說(shuō)明: 
1.?IN?後面接的是一個(gè)集合,表示column1?存在集合里面。
2.?SELECT?出來(lái)的資料形態(tài)必須符合?column1。?
其他查詢
SELECT?*
FROM?table_name1
WHERE?column1?LIKE?'x%'?
說(shuō)明:LIKE?必須和後面的'x%'?相呼應(yīng)表示以?x為開頭的字串。
SELECT?*
FROM?table_name1
WHERE?column1?IN?('xxx','yyy',..)
說(shuō)明:IN?後面接的是一個(gè)集合,表示column1?存在集合里面。
SELECT?*
FROM?table_name1
WHERE?column1?BETWEEN?xx?AND?yy
說(shuō)明:BETWEEN?表示?column1?的值介於?xx?和?yy?之間。?
3、更改資料:
UPDATE?table_name
SET?column1='xxx'
WHERE?conditoins
說(shuō)明:
1.更改某個(gè)欄位設(shè)定其值為'xxx'。
2.conditions?是所要符合的條件、若沒有?WHERE?則整個(gè)?table?的那個(gè)欄位都會(huì)全部被更改。
4、刪除資料:
DELETE?FROM?table_name
WHERE?conditions
說(shuō)明:刪除符合條件的資料。
說(shuō)明:關(guān)于WHERE條件后面如果包含有日期的比較,不同數(shù)據(jù)庫(kù)有不同的表達(dá)式。具體如下:
(1)如果是ACCESS數(shù)據(jù)庫(kù),則為:WHERE?mydate>#2000-01-01#?
(2)如果是ORACLE數(shù)據(jù)庫(kù),則為:WHERE?mydate>cast('2000-01-01'?as?date)
或:WHERE?mydate>to_date('2000-01-01','yyyy-mm-dd')
在Delphi中寫成:
thedate='2000-01-01';
query1.SQL.add('select?*?from?abc?where?mydate>cast('+''''+thedate+''''+'?as?date)');?
如果比較日期時(shí)間型,則為:
WHERE?mydatetime>to_date('2000-01-01?10:00:01','yyyy-mm-dd?hh24:mi:ss')

Top
回復(fù)人:?qxm(qxm)?(?)?信譽(yù):100?2003-4-15?15:09:04?得分:0

不錯(cuò)

Top
回復(fù)人:?dj0430()?(?)?信譽(yù):100?2003-4-15?15:22:27?得分:0

表達(dá)式求值:
???直接發(fā)送?Select(1+2)*3?
???或者?????Select?top?1?(1+2)*3?from?TableName
歡迎前去討論“各種語(yǔ)言的表達(dá)式求值問題”
http://expert.csdn.net/Expert/topic/1661/1661139.xml?temp=.6748773

Top
回復(fù)人:?sanzfm(珊珊來(lái)遲)?(?)?信譽(yù):100?2003-4-15?15:28:52?得分:0

收藏收藏

Top
回復(fù)人:?baiyunfei(埋頭苦學(xué))?(?)?信譽(yù):97?2003-4-15?17:03:36?得分:0

恩,埋頭學(xué)習(xí)中!

Top
回復(fù)人:?weijiajia11()?(?)?信譽(yù):97?2003-4-15?17:11:17?得分:0

太多了

Top
回復(fù)人:?imports(小雞快跑!Q_Q)?(?)?信譽(yù):99?2003-4-15?17:20:34?得分:0

不懂!?
Mark!

Top
回復(fù)人:?xboy(一劍如故)?(?)?信譽(yù):100?2003-4-15?18:57:09?得分:0

up

Top
回復(fù)人:?wlhtake(正在調(diào)試)?(?)?信譽(yù):99?2003-4-15?21:40:19?得分:0

我考~!?這些人貼sql又不說(shuō)明適用數(shù)據(jù)庫(kù),容易搞暈的哈
再說(shuō)了,這些sql太常用了,何來(lái)精妙之言?
最精妙的語(yǔ)句莫過于?SELECT?*?FROM??

Top
回復(fù)人:?reddg(reddg)?(?)?信譽(yù):100?2003-4-15?23:21:48?得分:0

浪費(fèi)時(shí)間

Top
回復(fù)人:?Tomcat4(Tom)?(?)?信譽(yù):105?2003-4-16?9:47:15?得分:0

up!

Top
回復(fù)人:?junyh(阿俊)?(?)?信譽(yù):100?2003-4-16?10:03:03?得分:0

學(xué)習(xí)先

Top
回復(fù)人:?lizongqi(英雄啊)?(?)?信譽(yù):100?2003-4-16?10:36:57?得分:0



Top
回復(fù)人:?Swanzy(志遠(yuǎn))?(?)?信譽(yù):100?2003-4-16?13:19:58?得分:0

常用的就不貼了吧?
我絕對(duì)支持??wlhtake(正在調(diào)試)?!
“最精妙的語(yǔ)句莫過于?SELECT?*?FROM??”!!!!

Top
回復(fù)人:?chenquan(嘉威王子)?(?)?信譽(yù):100?2003-4-16?13:25:20?得分:5

我也來(lái),以前給一個(gè)網(wǎng)友的貼
(select?a,b,c,avg(s)?as?Mavg,count(s)?Mcount?from?cq_tt?
group?by?a,b,c)?--c小計(jì)
union
(select?a,'小計(jì)'?b,''?c,sum(Mavg)?Mavg,sum(Mcount)?Mcount?from
(select?a,b,c,avg(s)?as?Mavg,count(s)?Mcount?from?cq_tt?group?by?a,b,c)?
as?chen
group?by?a)?--A小計(jì)
union
(select?a,b,'小計(jì)'?c,sum(Mavg)?Mavg,sum(Mcount)?Mcount?from
(select?a,b,c,avg(s)?as?Mavg,count(s)?Mcount?from?cq_tt?group?by?a,b,c)?
as?chen
group?by?a,b)?--B小計(jì)

Top
回復(fù)人:?kjijian(!魔法師)?(?)?信譽(yù):100?2003-4-16?15:18:51?得分:0

mark.

Top
回復(fù)人:?tangyong_delphi()?(?)?信譽(yù):99?2003-4-16?21:42:34?得分:0

經(jīng)典收藏。

Top
回復(fù)人:?donglw(天行)?(?)?信譽(yù):100?2003-4-17?1:28:45?得分:0

值得收藏!

Top
回復(fù)人:?williy(肩扛干糧找組織)?(?)?信譽(yù):100?2003-4-17?9:07:31?得分:0

嗯!好!!!

Top
回復(fù)人:?brat365(我就是五億探長(zhǎng)--雷洛)?(?)?信譽(yù):97?2003-4-17?10:21:09?得分:0

學(xué)習(xí)了不少,感謝大家做出的貢獻(xiàn)

Top
回復(fù)人:?lilyfirstone(永恒......)?(?)?信譽(yù):100?2003-4-17?10:45:29?得分:0

mark

Top
回復(fù)人:?pengdali(大力?V2.0)?(?)?信譽(yù):100?2003-4-17?12:06:07?得分:0

哈哈。。太簡(jiǎn)單了!哈哈。。

Top
回復(fù)人:?yonghengdizhen(剎那←→永恒)?(?)?信譽(yù):112?2003-4-17?12:34:25?得分:0

to??pengdali(大力)?
怎么有空到這兒瞧..
WEB這東東可是沒什么好玩的耶.偶都要改行了

Top
回復(fù)人:?rena0504(麗娜)?(?)?信譽(yù):100?2003-4-17?12:48:34?得分:0

select?a,b,c?
from?a?
where?a?IN?
?????(select?d?from?b?)

Top
回復(fù)人:?readersm68(地主)?(?)?信譽(yù):100?2003-4-17?15:31:09?得分:0

結(jié)束。

Top
回復(fù)人:?hcgui(浪子)?(?)?信譽(yù):100?2003-4-17?16:15:19?得分:0

good

Top
回復(fù)人:?javafish(小魚兒)?(?)?信譽(yù):101?2003-4-18?11:46:50?得分:0

mark

Top
回復(fù)人:?rengs(冷雨)?(?)?信譽(yù):100?2003-4-18?13:58:18?得分:0

oracle:
select?'sql的精妙不在于寫的簡(jiǎn)短,而在于能使得查詢效率提高'?from?dual

Top
回復(fù)人:?rengs(冷雨)?(?)?信譽(yù):100?2003-4-18?14:27:44?得分:5
回復(fù)人:?LuoGD(沃適)?(?)?信譽(yù):100??2003-3-18?18:11:36??得分:0?
說(shuō)明:子查詢(表名1:a?表名2:b)
select?a,b,c?from?a?where?a?IN?(select?d?from?b?)
這是一個(gè)可以優(yōu)化的sql語(yǔ)句,給a表中的a和b表中的d使用索引,然后改為
select?a,b,c?from?a?where?exists?(select?*?from?b?where?b.d=a.a)
總結(jié)說(shuō)一點(diǎn):
1、要合理使用索引
索引是數(shù)據(jù)庫(kù)一個(gè)重要的構(gòu)成部分,很多人都會(huì)忽略它,其實(shí)索引的根本目的就是
為了提高查詢效率。
使用原則如下:?
在經(jīng)常進(jìn)行連接,但是沒有指定為外鍵的列上建立索引,而不經(jīng)常連接的字段則
由優(yōu)化器自動(dòng)生成索引。?
在頻繁進(jìn)行排序或分組(即進(jìn)行g(shù)roup?by或order?by操作)的列上建立索引。?
在條件表達(dá)式中經(jīng)常用到的不同值較多的列上建立檢索,在不同值少的列上不要
建立索引。比如在雇員表的“性別”列上只有“男”與“女”兩個(gè)不同值,因此就
無(wú)必要建立索引。如果建立索引不但不會(huì)提高查詢效率,反而會(huì)嚴(yán)重降低更新速度
。?
如果待排序的列有多個(gè),可以在這些列上建立復(fù)合索引(compound?index)。?
在寫sql語(yǔ)句時(shí)就必須注意有些寫法是會(huì)使得數(shù)據(jù)庫(kù)無(wú)法使用索引的,比如IS?NULL
IS?NOT?NULL,IN?,NOT?IN?等。。。
2.避免或簡(jiǎn)化排序?
應(yīng)當(dāng)簡(jiǎn)化或避免對(duì)大型表進(jìn)行重復(fù)的排序。當(dāng)能夠利用索引自動(dòng)以適當(dāng)?shù)拇涡虍a(chǎn)生
輸出時(shí),優(yōu)化器就避免了排序的步驟。以下是一些影響因素:?
●索引中不包括一個(gè)或幾個(gè)待排序的列;?
●group?by或order?by子句中列的次序與索引的次序不一樣;?
●排序的列來(lái)自不同的表。?
為了避免不必要的排序,就要正確地增建索引,合理地合并數(shù)據(jù)庫(kù)表(盡管有時(shí)可
能影響表的規(guī)范化,但相對(duì)于效率的提高是值得的)。如果排序不可避免,那么應(yīng)
當(dāng)試圖簡(jiǎn)化它,如縮小排序的列的范圍等。?
3.消除對(duì)大型表行數(shù)據(jù)的順序存取?
在嵌套查詢中,對(duì)表的順序存取對(duì)查詢效率可能產(chǎn)生致命的影響。比如采用順序存
取策略,一個(gè)嵌套3層的查詢,如果每層都查詢1000行,那么這個(gè)查詢就要查詢10
億行數(shù)據(jù)。避免這種情況的主要方法就是對(duì)連接的列進(jìn)行索引。例如,兩個(gè)表:學(xué)
生表(學(xué)號(hào)、姓名、年齡……)和選課表(學(xué)號(hào)、課程號(hào)、成績(jī))。如果兩個(gè)表要
做連接,就要在“學(xué)號(hào)”這個(gè)連接字段上建立索引。?
還可以使用并集來(lái)避免順序存取。盡管在所有的檢查列上都有索引,但某些形式的
where子句強(qiáng)迫優(yōu)化器使用順序存取。下面的查詢將強(qiáng)迫對(duì)orders表執(zhí)行順序操作
:?
SELECT?*?FROM?orders?WHERE?(customer_num=104?AND?order_num>1001)?OR?
order_num=1008?
雖然在customer_num和order_num上建有索引,但是在上面的語(yǔ)句中優(yōu)化器還是使
用順序存取路徑掃描整個(gè)表。因?yàn)檫@個(gè)語(yǔ)句要檢索的是分離的行的集合,所以應(yīng)該
改為如下語(yǔ)句:?
SELECT?*?FROM?orders?WHERE?customer_num=104?AND?order_num>1001?
UNION?
SELECT?*?FROM?orders?WHERE?order_num=1008?
這樣就能利用索引路徑處理查詢。?
4.避免相關(guān)子查詢?
一個(gè)列的標(biāo)簽同時(shí)在主查詢和where子句中的查詢中出現(xiàn),那么很可能當(dāng)主查詢中
的列值改變之后,子查詢必須重新查詢一次。查詢嵌套層次越多,效率越低,因此
應(yīng)當(dāng)盡量避免子查詢。如果子查詢不可避免,那么要在子查詢中過濾掉盡可能多的
行。?
5.避免困難的正規(guī)表達(dá)式?
MATCHES和LIKE關(guān)鍵字支持通配符匹配,技術(shù)上叫正規(guī)表達(dá)式。但這種匹配特別耗
費(fèi)時(shí)間。例如:SELECT?*?FROM?customer?WHERE?zipcode?LIKE?“98_?_?_”?
即使在zipcode字段上建立了索引,在這種情況下也還是采用順序掃描的方式。如
果把語(yǔ)句改為SELECT?*?FROM?customer?WHERE?zipcode?>“98000”,在執(zhí)行查詢
時(shí)就會(huì)利用索引來(lái)查詢,顯然會(huì)大大提高速度。?
另外,還要避免非開始的子串。例如語(yǔ)句:SELECT?*?FROM?customer?WHERE?
zipcode[2,3]?>“80”,在where子句中采用了非開始子串,因而這個(gè)語(yǔ)句也不會(huì)
使用索引。?
6.使用臨時(shí)表加速查詢?
把表的一個(gè)子集進(jìn)行排序并創(chuàng)建臨時(shí)表,有時(shí)能加速查詢。它有助于避免多重排序
操作,而且在其他方面還能簡(jiǎn)化優(yōu)化器的工作。例如:?
SELECT?cust.name,rcvbles.balance,……other?columns?
FROM?cust,rcvbles?
WHERE?cust.customer_id?=?rcvlbes.customer_id?
AND?rcvblls.balance>0?
AND?cust.postcode>“98000”?
ORDER?BY?cust.name?
如果這個(gè)查詢要被執(zhí)行多次而不止一次,可以把所有未付款的客戶找出來(lái)放在一個(gè)
臨時(shí)文件中,并按客戶的名字進(jìn)行排序:?
SELECT?cust.name,rcvbles.balance,……other?columns?
FROM?cust,rcvbles?
WHERE?cust.customer_id?=?rcvlbes.customer_id?
AND?rcvblls.balance>0?
ORDER?BY?cust.name?
INTO?TEMP?cust_with_balance?
然后以下面的方式在臨時(shí)表中查詢:?
SELECT?*?FROM?cust_with_balance?
WHERE?postcode>“98000”?
臨時(shí)表中的行要比主表中的行少,而且物理順序就是所要求的順序,減少了磁盤
I/O,所以查詢工作量可以得到大幅減少。?
注意:臨時(shí)表創(chuàng)建后不會(huì)反映主表的修改。在主表中數(shù)據(jù)頻繁修改的情況下,注意
不要丟失數(shù)據(jù)。?
7.用排序來(lái)取代非順序存取?
非順序磁盤存取是最慢的操作,表現(xiàn)在磁盤存取臂的來(lái)回移動(dòng)。SQL語(yǔ)句隱藏了這
一情況,使得我們?cè)趯憫?yīng)用程序時(shí)很容易寫出要求存取大量非順序頁(yè)的查詢。?
有些時(shí)候,用數(shù)據(jù)庫(kù)的排序能力來(lái)替代非順序的存取能改進(jìn)查詢。?
??


Top
回復(fù)人:?istrue(象)?(?)?信譽(yù):100?2003-4-20?18:10:13?得分:0

create?table?小孩?select?精子,卵子?from?男,女?where?男.生殖器=女.生殖器

Top
回復(fù)人:?runner001_cn(柳生007)?(?)?信譽(yù):100?2003-4-20?22:47:37?得分:0

最近我做一個(gè)出版圖書項(xiàng)目,我用的是access數(shù)據(jù)庫(kù)。
表cbs_public中有字段
id,cbs_bcode,cbs_bname,cbs_bauthor,cbs_banci......
cbs_bcode:一種書的唯一編號(hào),我們稱為社內(nèi)編號(hào)。
cbs_bname:書名
cbs_buthor:作者
cbs_banci:書的版次,這個(gè)字段是4位的字符。如0103,表示第一版第三次印刷
????這個(gè)庫(kù)中有3000多記錄,由于有的書多次再版或是重印,使得同一本書(cbs_bcode一樣)的記錄出現(xiàn)多次,但是cbs_banci不一樣,現(xiàn)在我想把同一本書的最新版的最近印刷的那條記錄選擇出來(lái),而將其他記錄刪除掉,我因該如何做?
我嘗試過在access2000的查詢表中使用group?by?having?語(yǔ)句以及集函數(shù)max(),但好像不成功,我應(yīng)該如何做呢?
這個(gè)帖子有很多sql語(yǔ)言高手,希望有人能幫我解答,謝謝!

Top
回復(fù)人:?mee123456(臭球)?(?)?信譽(yù):100?2003-4-22?14:05:15?得分:0

摘自某帖,供尚未知情者參考:
SQL?Server中實(shí)現(xiàn)limit功能,如選擇stu(num,name)?中的第10到第20條記錄:
SELECT?TOP?10?a.num,?a.name
FROM?(SELECT?TOP?20?*
????????FROM?stu
????????ORDER?BY?num?DESC)?a
ORDER?BY?a.num

Top
回復(fù)人:?zhongjz(小海螺)?(?)?信譽(yù):105?2003-4-22?19:31:47?得分:0

一個(gè)最簡(jiǎn)單的調(diào)試函數(shù)辦法:
再要在函數(shù)?ecoadd?中加入:
DBMS_OUTPUT.PUT_LINE('v_canBeAdd?is?'||v_canBeAdd);?--輸出中間變量
SQL>?set?serverout?on;
SQL>?declare
??2??a?number;
??3??begin
??4??a:=ecoadd('21',to_date('2003-04-18','yyyy-mm-dd'));
??5??end;
??6??/
v_canBeAdd?is?1
PL/SQL?procedure?successfully?completed.

Top
回復(fù)人:?Tabasco(飛鳥)?(?)?信譽(yù):100?2003-4-23?12:10:43?得分:0

不錯(cuò)不錯(cuò)

Top
回復(fù)人:?hnhhcj(亦凡)?(?)?信譽(yù):100?2003-4-23?19:20:23?得分:0

好!我喜歡!

Top
回復(fù)人:?willway(編程是工作-足球是娛樂-學(xué)習(xí)是永恒!)?(?)?信譽(yù):95?2003-4-24?16:03:40?得分:0

看到了大海,才知道以前一直在小水溝里游泳

Top
回復(fù)人:?tigerwen01(小虎)(編程藝術(shù)化)?(?)?信譽(yù):485?2003-4-24?17:21:56?得分:0

我也來(lái)一句吧:
Select?field1,field2,(Case?When?**?then?aa?When?***?then?aaa?Else?bbb?End)ResultVal?From?Tablename?where?條件?order?by?id?DESC

Top
回復(fù)人:?luckysym(熱帶風(fēng)暴)?(?)?信譽(yù):100?2003-4-25?13:57:26?得分:0

sign

Top
回復(fù)人:?findya(滿地找牙)?(?)?信譽(yù):100?2003-4-25?15:06:49?得分:0

to?annkie(活著便精彩)?:
select?*,?((yjs_count?+?0.00)/bys_count)?as?jy_ratio?from
(
select?kzx4dm,?count(kzx4dm)?as?bys_count,?
??sum(case?jylsfsdm?when?10?then?1?else?0?end)?as?yjs_count
from?Test
group?by?kzx4dm?
)?a

Top
回復(fù)人:?yoki(小馬哥)?(?)?信譽(yù):100?2003-4-26?15:22:16?得分:0

要學(xué)sql還是去mssql版吧

Top
回復(fù)人:?xiaoyuer0851(紅旗下的蛋)?(?)?信譽(yù):100?2003-4-26?20:48:04?得分:0

經(jīng)典,謝謝了,各位

Top
回復(fù)人:?tboer(五峰)?(?)?信譽(yù):96?2003-4-27?13:17:54?得分:0

收藏~

Top
回復(fù)人:?java2000(左天)?(?)?信譽(yù):100?2003-4-28?12:45:18?得分:0

好東西,大家繼續(xù)。。。。。。。。
收藏....

Top
回復(fù)人:?jihejihe(幾何)?(?)?信譽(yù):100?2003-4-28?14:56:09?得分:0

強(qiáng)烈關(guān)注!!!

Top
回復(fù)人:?boy21cnthp(娃娃)?(?)?信譽(yù):99?2003-5-1?1:55:00?得分:0

收藏

Top
回復(fù)人:?xiaoduan0115(小段)?(?)?信譽(yù):100?2003-5-1?19:18:27?得分:0

學(xué)習(xí)中

Top
回復(fù)人:?lynn0821(林子)?(?)?信譽(yù):100?2003-5-3?17:04:12?得分:0

看不懂啊!
高手這么多!

Top
回復(fù)人:?dgm8(dgm8)?(?)?信譽(yù):100?2003-5-3?22:22:08?得分:0

不知道寫的人自己懂不懂,要貼的話,我也可以從教材上拷一大堆.

Top
回復(fù)人:?Redball(紅刺猬)?(?)?信譽(yù):100?2003-5-3?22:58:39?得分:0

drop?index
Microsoft?SQL?Server?2000的索引并沒有太多變化,本來(lái)還以為會(huì)有R-Tree、Bitmap?Index之類的東東出來(lái)呢,結(jié)果很讓人失
望:(
不過還是有一些變化的,第三講里面已經(jīng)說(shuō)過了可以給View加索引,還有一點(diǎn)就是可以給計(jì)算列(Computed?Columns)加索引。
?不知道什么是Computed?Columns?我倒!
其實(shí)這東東我也就用過一次,抄一段Online?Book的Sample?Code吧
CREATE?TABLE?t2?(a?int,?b?int,?c?int,?x?float,?
????y?as?CASE?x?
????????????WHEN?0?THEN?a?
????????????WHEN?1?THEN?b?
????????????ELSE?c?
????????END)
CREATE?TABLE?mytable?
???(
????low?int,
????high?int,
????myavg?AS?(low?+?high)/2
???)
看明白了吧,就是as后面加一個(gè)計(jì)算值而已,OK,?continue
現(xiàn)在雖然可以給計(jì)算列加索引了,但是還是受到一些限制的,比如說(shuō),象avg、sum這樣的和整張表都有關(guān)的計(jì)算值就不可以加索
引,還有,具有不確定計(jì)算值的也不可以加索引,表達(dá)式中使用的字段也必須是這張表中的。
SQL?2000里面對(duì)索引作了一些優(yōu)化,不過具體的細(xì)節(jié)不是很清楚,我所知道的就是在多CPU的機(jī)器上建立索引的時(shí)候可以使用平行
多線程來(lái)掃描和分類數(shù)據(jù)。實(shí)現(xiàn)的技術(shù)細(xì)節(jié)沒有太多的意思,簡(jiǎn)單介紹一下就是,服務(wù)器在建立索引之前對(duì)表做一個(gè)快速的隨機(jī)掃
描,把數(shù)據(jù)按照設(shè)置的平行度分為幾塊,然后每個(gè)線程利用過濾器對(duì)基表進(jìn)行查詢,分別建立索引結(jié)構(gòu),每個(gè)線程都完成之后再把
這些索引連接起來(lái)。
SQL?2000中很多地方對(duì)多CPU和Clustered?Server做了優(yōu)化,可惜現(xiàn)在的資料太少,不過使用一段時(shí)間就會(huì)慢慢發(fā)現(xiàn)的了。

Top
回復(fù)人:?ljz811(李建忠)?(?)?信譽(yù):100?2003-5-5?0:26:11?得分:5

多重查詢的解決方案
注:本文來(lái)自
http://www.printmarket.com.cn?朱繼山?tozjs@263.net,否則視為侵權(quán)。
??????????????[前言]
????我們經(jīng)常會(huì)遇到多重查詢問題,而長(zhǎng)長(zhǎng)的SQL語(yǔ)句往往讓人丈二和尚摸不著頭腦。特別是客戶端部分填入查詢條件時(shí),如用普通方法將更是難上加難。
????以下巧妙地利用"where?1=1"的恒等式(事實(shí)上很多,讓它值為TRUE即可)解決此問題。
?????????????????[正文概要]
'subject?信息標(biāo)題
'company?發(fā)布信息的公司名稱
'content?發(fā)布信息的內(nèi)容
'address?公司地址
'infomation?公司簡(jiǎn)介
'note?相關(guān)說(shuō)明
以上值均由FORM提交,然后通過:subject=trim(Request.Form("subject"))等得到相應(yīng)的值。
<%
'這個(gè)函數(shù)很關(guān)鍵!---------------------------
Function?sql(a,b,sqls)
????if?b<>""?then???'如果客戶端沒有提交此值,則不會(huì)產(chǎn)生相應(yīng)的SQL語(yǔ)句。
????sqls=sqls?&?"?and?"?&?a?&?"?like?'%"?&?b?&?"%'"
????end?if
????sql=sqls
End?Function
'-----------------調(diào)用數(shù)據(jù)庫(kù)
????Set?conn=Server.CreateObject("ADODB.Connection")
????DBpath=Server.MapPath("/database/mydb.mdb")
????Conn.Open?"driver={Microsoft?Access?Driver?(*.mdb)};pwd=;dbq="?&?DBpath
????Set?rs=Server.CreateObject("ADODB.Recordset")
sqls="select?*?from?mytable??where?1=1?"
'以下調(diào)用上面的函數(shù)即可,可以很多個(gè)調(diào)用(理論上是任意)
????sqls=sql("subject",subject,sqls)
????sqls=sql("company",company,sqls)
????sqls=sql("content",content,sqls)
????sqls=sql("address",address,sqls)
????sqls=sql("infomation",infomation,sqls)
????sqls=sql("note",note,sqls)
sqls=sqls?&?"?order?by?id?desc"
????rs.open?sqls,conn,3,2
%>
????????????????????????[結(jié)束語(yǔ)]
????如果沒有關(guān)鍵的函數(shù)Function?sql(a,b,sqls),我們可以想象,需要多少判斷的一個(gè)接一個(gè)的語(yǔ)句!

Top
回復(fù)人:?tigerwen01(小虎)(編程藝術(shù)化)?(?)?信譽(yù):485?2003-5-7?8:46:11?得分:0

Case語(yǔ)句:
SELECT?FIELD1,FIELD2,(CASE?WHEN?某某?THEN?某某?WHEN?某某?THEN?某某?ELSE?某某?END)NEWFIELD?FROM?TABLENAME?ORDER?BY?FIELD

Top
回復(fù)人:?hakin(邊城之風(fēng))?(?)?信譽(yù):101?2003-5-8?21:34:51?得分:0

占個(gè)位。。。。

Top
回復(fù)人:?playboy200(林)?(?)?信譽(yù):100?2003-5-9?10:56:39?得分:0

VBSCRIPT常見的內(nèi)部函數(shù)
函數(shù)?功能簡(jiǎn)述?
ABS(number)?返回?cái)?shù)字的絕對(duì)值?
Array(arglist)?返回?cái)?shù)組實(shí)例?
Asc(string)?返回ANSI字符字符串?
Atn(number)?返回Arctangernt值?
CBool(expression)?返回Boolean類型的值?
CByte(expression)?返回Byte類型的值?
CCur(expression)?返回Currency類型的值?
?????CDate(date)?返回Date類型的值?
CDbl(expression)?返回Double類型的值?
Chr(charcode)?返回ANSI字符碼?
????CInt(expression)?返回Integer類型值?
CLng(expression)?返回Long類型值?
Cos(nubmer)?返回一個(gè)弧度數(shù)字的Cosine值?
CreateObject(class)?返回一個(gè)對(duì)象實(shí)例?
CSng(expression)?返回Single類型的值?
????CStr(expression)?返回string類型的值?
Date?返回目前的系統(tǒng)時(shí)間?
DateAdd(interval,number,date)?返回更改的時(shí)間?
DateDiff(interval,date1,date2)?返回兩日期的間隔?
DatePart(interval,date)?返回給定時(shí)間的某個(gè)部分值?
DateSerial(year,month,day)?轉(zhuǎn)換給定時(shí)間Date類型?
DateValue(date)?返回date類型的值?
Day(date)?返回1-31的日期數(shù)字?
Exp(number)?返回自然指數(shù)的次方數(shù)?
Int(nubmber)?返回?cái)?shù)字的絕對(duì)整數(shù)(無(wú)條件進(jìn)位)?
Fix(number)?返回?cái)?shù)字的整數(shù)(無(wú)條件舍去)?
Filter(Inputstrings,value)?返回一維數(shù)組內(nèi)字符串位置?
FormatCurrency(expression)?返回表達(dá)式類型?
???FormatDateTime(date)?返回日期或時(shí)間的表達(dá)式?
??FormatNumber(expression)?返回?cái)?shù)字的表達(dá)式?
FormatParcent(expression)?返回百分比的表達(dá)式?
GetObject([pathname][,class])?去回文件內(nèi)的對(duì)象?
Hex(number)?返回?cái)?shù)字的16進(jìn)位?
Hour(time)?返回時(shí)間的小時(shí)數(shù)?
InputBox(prompt,...)?顯示一個(gè)可供輸入的對(duì)話框?
Instr(string,searchstr)?返回搜尋字符串的第一個(gè)位置?
InstrRev(string,searchstr)?從尾端搜尋字符串的位置?
IsArray(varname)?判定是變量還是數(shù)組?
IsDate(expression)?判定是否是日期表達(dá)式?
IsEmpty(expression)?判定變量?jī)?nèi)是否有值?
IsNull(expression)?判定是否為NULL值?
IsNumeric(expression)?判定是否為數(shù)字值?
LoadPicture(picturename)?返回一個(gè)圖象對(duì)象?
IsObject(expression)?判定是否為一個(gè)變量?
Join(list[,delimiter])?加入一數(shù)組內(nèi)的子字符串?
LBound(arrayname)?返回?cái)?shù)組的最小索引?
LCase(string)?返回小寫字符串?
Left(string,ength)?返回需要長(zhǎng)度的字符串?
Len(string|varname)?返回字符場(chǎng)長(zhǎng)度?
Log(number)?返回自然對(duì)數(shù)?
LTrim(string)?去除字符串的開頭空白字符?
RTrim(string)?去除字符串的尾端空白字符?
Trim(string)?去除字符串的開頭、尾端空白字符?
Mid(string,start[,length])?返回指定位置的字符串?
Minute(time)?返回時(shí)間的分?jǐn)?shù)?
Month(date)?返回日期的月份?
MonthName(month[,abbreviate])?返回月份字符串?
MsgBox(prompt,...)?顯示一個(gè)信息框?
Now?返回系統(tǒng)的日期與時(shí)間?
Oct(number)?返回?cái)?shù)字的八進(jìn)制?
Replace(string,find,replacewith)?取代部分字符串?
Right(string,ength)?從尾端返回需要長(zhǎng)度的字符串?
Rnd[(number)]?返回一個(gè)隨機(jī)數(shù)?
Split(expression,...)?返回指定字符串的一維數(shù)組?
ScriptEngineBuildVersion?返回現(xiàn)在使用的Script語(yǔ)言的版本?
ScriptEngineMajorVersion?返回現(xiàn)在使用的Script語(yǔ)言的主要版本?
ScriptEngineMinorVersion?返回現(xiàn)在使用的Script語(yǔ)言的次要版本?
Round(expression[,num])??Returns?a?number?rounded?
ScriptEngine?返回現(xiàn)在使用的Script語(yǔ)言?
Second(time)?返回時(shí)間秒數(shù)?
Sgn(number)?判斷數(shù)字的正負(fù)號(hào)?
Sin(number)?返回弧度數(shù)字的Sin值?
Space(number)?返回指定的空白字符字符串?
Sqr(number)?返回?cái)?shù)字的二次方根?
StrComp(string1,string2[,compare])?比較兩個(gè)字符串?
StrReverse(string)?反過來(lái)排列字符串?
String(number,character)?返回一重復(fù)字符串?
Tan(number)?返回弧度數(shù)字的Tangent值?
這個(gè)一定精典吧
Time?返回目前的系統(tǒng)時(shí)間?
TimeSerial(hour,minute,second)?返回時(shí)間date類型?
TimeValje(time)?繁華包含時(shí)間的date類型?
TypeName(varname)?返回變量的數(shù)據(jù)類型?
UBound(arrayname)?從尾端返回?cái)?shù)組的最小索引?
UCase(string)?返回大寫字符?
VarType(varname)?發(fā)行代表變量數(shù)據(jù)類型的數(shù)字?
Weekday(date,[firstdayofweek])?返回日期是禮拜幾?
Year(date)?返回日期內(nèi)的年數(shù)

總結(jié)

以上是生活随笔為你收集整理的SQL语句的强大综合集锦的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。