



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
縱覽各大社區(qū)、論壇,各大ORM框架火得不行了,如NHibernate、LINQtoSQL、ADO.NETEntityframework等,還有最近市場上出版的一本叫《領(lǐng)域驅(qū)動設(shè)計與模式實戰(zhàn)》,里面也凸顯了不少NHibernate在領(lǐng)域驅(qū)動設(shè)計中的作用與地位,也算是第一本與NHibernate相關(guān)的書籍吧!不過就NHibernate而言還是沒有官方文檔介紹得詳細呵呵,園子里Kiler已經(jīng)把他翻譯成中文版的了,收益一大片僅僅是CET-4的人。不管你是用NHibernate也好,還是用LINQtoSQL也好,用profiler一跟蹤,執(zhí)行的都是SQL語句,所以所SQL是根。特別是對于那些以數(shù)據(jù)為中心的應(yīng)用系統(tǒng),在數(shù)據(jù)庫中實現(xiàn)復(fù)雜的存儲過程,復(fù)雜的報表查詢,還是直接SQL來得痛快。當然對于那些在基于.NET的中間層應(yīng)用中,它們實現(xiàn)面向?qū)ο蟮臉I(yè)務(wù)模型和商業(yè)邏輯的應(yīng)用,NHibernate是最有用的。不管怎樣,NHibernate一定可以幫助你消除或者包裝那些針對特定廠商的SQL代碼,并且?guī)湍惆呀Y(jié)果集從表格式的表示形式轉(zhuǎn)換到一系列的對象去(官方文檔)。
有點跑題了,不再啰嗦----直接晾出壓軸題。壓軸題第一問1.把表一轉(zhuǎn)換為表二表一:
表二:數(shù)據(jù)庫代碼如下:代碼
1DROP
table
#student
2CREATE
TABLE
#student
(stdname
nvarchar(10),stdsubject
nvarchar(10),result
int)
3INSERT
INTO
#student
VALUES
('張三','語文',80)
4INSERT
INTO
#student
values
('張三','數(shù)學(xué)',90)
5INSERT
INTO
#student
VALUES
('張三','物理',85)
6INSERT
INTO
#student
VALUES
('李四','語文',85)
7INSERT
INTO
#student
values
('李四','數(shù)學(xué)',92)
8INSERT
INTO
#student
VALUES
('李四','物理',82)
9INSERT
INTO
#student
VALUES
('李四','化學(xué)',82)10INSERT
INTO
#student
VALUES
('李四','化學(xué)',82)11SELECT
*
FROM
#student
可能很多老手們,一看到這題目就有了答案。當然,貼出答案來不是我的目的,我要帶著SQL新手們重構(gòu)到答案。用李建忠老師最愛說的話就是------我不建議一上來就套用模式,而應(yīng)該從重構(gòu)到模式。首先大家會想到分兩組1select
stdname,····,from
#student
group
by
stdname間然后···字···中間琴該寫什么呢跡?代碼偶1
爸case蘭
stds暑ubjec蓬t
whe包n
拆'化學(xué)'黃
then盾
Resu盛lt
en驢d勝2
也case垃
stds品ubjec善t
whe鵲n
獻'語文'疲
then達
Resu誓lt
en違d顛3
吹ca賴se孔
stds蔥ubjec帥t
whe努n
柱'···'擱
then疑
Resu毅lt
en刺d枝4
滔case四
stds額ubjec悄t
whe峰n
侮'···'亦
then競
Resu帽lt
en青d壽5
龍case暴
stds叨ubjec撕t
whe通n
通'···'青
then除
Resu熊lt
en斗d貪表二里面得桃0是哪里來暈的呢?代碼晶1許
isnu籌ll(su觀m(和case究
stds頂ubjec蒙t
whe撤n
扔'化學(xué)'臨
then憤
Resu崖lt
en稍d),暴0熊)堅2榴
isnu免ll(su箏m(便case別
stds天ubjec伶t
whe普n
搭'語文'耳
then狀
Resu唱lt
en箱d),謠0堆)刊3而
isnu鎮(zhèn)ll(su弦m(本case雹
stds困ubje行ct
wh工en
嶼'···'盼
then安
Resu站lt
en墨d),我0眉)縱4拜
isnu翅ll(su因m(節(jié)case防
stds球ubjec逮t
whe筍n
瞎'···'厲
then傾
Resu柱lt
en抱d),勺0該)估5民
isnu喇ll(su熟m(帖case役
stds駐ubjec尊t
whe末n
棗'···'尸
then色
Resu千lt
en疼d),攻0濱)所以得出:代碼短1訊傾selec火t
std昂name,珍2懲唐isnul沙l(sum照(地case跡
stds她ubjec綠t
whe說n
德'化學(xué)'子
then悠
Resu久lt
en劍d),輔0琴)
[化學(xué)析],丈3鬼他isnul破l(sum舊(敲case秩
stds首ubjec旬t
whe靜n
考'數(shù)學(xué)'益
then得蛋Resul捐t
end毛),劑0匠)
[數(shù)學(xué)進],脫4滔丘isnul躍l(sum護(膚case顆
stds仰ubjec租t
whe積n
稠'物理'堵
then櫻
Resu枯lt
en道d),貨0爹)
[物理府],溫5瞎登isnul義l(sum聯(lián)(扯case芽
stds屆ubjec嗎t(yī)
whe臨n
芒'語文'脂
then苗
Resu韻lt
en江d),消0投)
[語文會]
所6權(quán)鉤from
孤#stud止ent
朝7頌阿group脹
by
s夸tdnam語e搜然后得出答普案:代碼窮1給橡decla梅re
@s穴ql
va正rchar休(與4000臥)
巾2舊緩set摘
@sql豎
=
辦'sele惱ct
st培dname失'新高3乞板selec副t
@sq隨l
=
@夜sql
+疾核',isn演ull展(sum(駐case
案stdsu舍bject碧
when舞
'''辣+stds魯ubjec倆t+氣'''
t欠hen
R軍esult百
end)拆,0)
[紛'片+stds驢ubjec可t+慰']'晨癢4女皺from
靈(sele康ct
di齡stinc瞎t
std芹subje肢ct
fr挪om
#s痕tuden竹t)
兵as宏
a
披5酒公selec兔t
@sq需l
=
@鋸sql+名'
fro賞m
#st盈udent押
grou脹p
by
脂stdna食me'躺耗6央馳print過
@sql賞7謝蘇exec(蠢@sql)叫8嶄尚壓軸題第二稼問:把表二匹轉(zhuǎn)化為表一表一:表二:婦數(shù)據(jù)庫代碼衰如下:代碼侮1綠碑DROP
脈table敢
#stu脾dent2析2疑壽CREAT慚E
TAB贈LE
#s跑tuden緊t2
(s廣tdnam理e
nva訓(xùn)rchar磨(勻10溜),化學(xué)
女int闊,數(shù)學(xué)
喇int蹲,物理
礦int光
,語文
揭int寬
)萌3釣朗INSER聞T
INT負O
#st晉udent虜2
VAL徹UES
(設(shè)'李四'賤,荒164覺,陷92膨,斤82灰,銷85襲)洞4瘋葵INSER袖T
INT他O
#st浸udent際2
VAL以UES
(么'張三'砍,替0踩,虜90箱,訴85修,環(huán)80蹄)礦5嬌通SELEC苗T
*
F幼ROM
#晴stude歐nt2
練看到這題,出直接想到:代碼抓
1脾易SELEC旋T浮'李四'遼as錢
stdn號ame,s們tdnam繭e=佛'化學(xué)'坡,
化學(xué)
漆as忠
resu丹lt
fr糖om
#s穗tuden緊t2
淡where棕
stdn膨ame=您'李四'夏
2灣莫union使
all殿
3詠毯SELEC耀T鈔'李四'搶as彈
stdn偵ame,s修tdnam仍e=莫'數(shù)學(xué)'罩,
數(shù)學(xué)
謊as章
resu灶lt
fr倦om
#s完tuden洽t2
小where據(jù)
stdn煩ame=明'李四'足
4吩鑰union內(nèi)
all余
5勻佩SELEC籠T碑'李四'漂as倒
stdn瀉ame,s嫂tdnam騰e=晨'物理'金,
物理
霞as龜
resu弓lt
fr樣om
#s第tuden診t2
桿where趴
stdn戀ame=門'李四'滋
6旺春union相
all摟
7陰植SELEC謀T崗'李四'急as欣
stdn顯ame,s缸tdnam裁e=稻'語文'抄,
語文
或as程
resu暢lt
fr脅om
#s悼tuden扣t2
默where領(lǐng)
stdn蹦ame=落'李四'毀尊饑8煮
unio荒n
all若育
9霉蘭SELEC吩T切'張三'蠻as墻
stdn洋ame,s恩tdnam頌e=泳'化學(xué)'刷,
化學(xué)
旗as償
resu耀lt
fr均om
#s劇tuden拳t2
沒where貧
stdn逆ame=蓬'張三'扶10揉蘇union就
all孔11廟讓SELEC宏T山'張三'被as扔
stdn冰ame,s菠tdnam徹e=綁'數(shù)學(xué)'涌,
數(shù)學(xué)
壓as鏟
resu核lt
fr急om
#s用tuden榆t2
班where且
stdn曾ame=隆'張三'屢12保托union訓(xùn)
all持13疤盆SELEC乎T拋'張三'宴as疊
stdn血ame,s舉tdnam便e=勿'物理'票,
物理
選as鏡
resu侵lt
fr越om
#s界tuden遍t2
做where掌
stdn密ame=脖'張三'群14貝震union艱
all幫15軌蹦SELEC眠T觸'張三'傳as糟
stdn侮ame,s旁tdnam趕e=騾'語文'創(chuàng),
語文
訓(xùn)as言
resu繭lt
fr簡om
#s挎tuden選t2
墾where月
stdn良ame=士'張三'
重構(gòu)到:代碼看
1剪災(zāi)decla捎re
@s鉆ql2
v棉archa嬸r(輪4000莊)抓
2姥姨擔set陸
@sql肆2
=
憲''匆拜
3粗爬SELEC許T
@sq撲l2=@s魯ql2+
悼
4弱怎'SELE樣CT'''訴+stdn央ame+攝'''as慣
stdn懷ame,s賀tdnam繩e=''化摘學(xué)'',
府化學(xué)
as遠
resu暗lt
fr勝om
#s執(zhí)tuden貪t2
wh苦ere
s統(tǒng)tdnam鐵e='''浸+stdn桌ame+站'''杯
5杯每union領(lǐng)
all裝
6死鳴SELEC索T炕'''+s夾tdnam侵e+'''拼as圣
stdn嫁ame,s當tdnam繼e=粒''然數(shù)學(xué)扶''剛,
數(shù)學(xué)
稻as疾
resu池lt
fr遺om
#s禽tuden規(guī)t2
遣where蓋
stdn葡ame=豎'''+s篇tdnam別e+'''刑
7賄秋union撓
all綢
8烈壺SELEC俗T躍'''+s銜tdnam眉e+'''桐as川
stdn票ame,s魯tdnam干e=擴''議物理少''鹽,
物理
纏as笛
resu吵lt
fr善om
#s聯(lián)tuden豐t2
押where爐
stdn脊ame=去'''+s綱tdnam暴e+'''假
9獨吐union慢
all縫10妥廈SELEC斯T劑'''+s刑tdnam碗e+'''戒as皆
stdn躺ame,s街tdnam尖e=停''彎語文銳''丘,
語文
孤as教
resu綢lt
fr皂om
#s祝tuden單t2
累where費
stdn物ame=蹄'''+s倘tdnam撿e+'''裹
unio叉n
all誤童'竄11襖獎from
膏(SELE收CT
st欄dname禿
FROM劇
#stu辯dent2最)
杜as賤
a鹽12掘爬SELEC秀T
@sq畜l2
=
盯LEFT(蹄@sql2鄰,LEN(喪@sql2霜)
-
賤10承)她13鞠更PRINT浩(@sql輩2)嫂14下聾exec(革@sql2狐)惜如果要求不毛能出現(xiàn)
旬化學(xué)
數(shù)暖學(xué)
物理滅語文這絮樣的關(guān)鍵字賠,那么可以猾這樣寫:代碼薄
1布百selec樓t
[na館me]
i佩nto
#乏tmpCl箱oumns野
2亂紅from
課tempd濤b.dbo濃.sysc榨olumn耽s宋
3僚丑where顧
id=o鄉(xiāng)bject傍_id(終'temp敢db.db碼o.#st蛾udent睛2'誕)追
4節(jié)純and
[賤name]柏<>四'stdn杏ame'知
5腰班selec憑t
*
某from
視#tmpC圖loumn灑s獵
6累漲
7廚扭decla箏re
@s倘trSql彎
nvar醒char(誦800袋)截
8紀城selec云t
@st參rSql=討''魯
9牽撥selec辰t
@st藏rSql=摘@strS抱ql+掛'unio緒n
all毫'收+鎖char滔(錢10紡)+敲char專(愚13朝)+摟10擦梳簽尊雞證'sele盲ct
[s森tdnam姜e],''警'包+[nam禾e]+供'''
a飯s
[科目計],['餡+[nam譯e]+嬌']'喚+缸char艱(援10愿)+輔char革(臘13希)+播11信毒防宣奶喘'from命
[#st罩udent陽2]'航+敞char配(單10謀)+扶char描(紹13兼)胳12殺姨from
筑#tmpC刮loumn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 標準離婚合同全文
- 新能源汽車銷售代理合同
- 商品房買賣合同示例
- 畢業(yè)生檔案托管合同協(xié)議書
- 廣告投放合同「樣本」
- 多人合伙經(jīng)營合同范例大全
- 屋頂防水修繕項目合同
- 戶外廣告LED大屏租賃合同
- 稻谷購銷合同樣本
- 腎性貧血的治療課件
- 《國際貿(mào)易實務(wù)(英文版)》(英文課件) -Ch 6 International Cargo Transport-Ch 11 Cross-border Commerce
- 新條令.新亮點-內(nèi)務(wù)條令解讀
- 中醫(yī)適宜技術(shù)-中藥熱奄包
- 林海雪原課件6張
- 銀發(fā)經(jīng)濟產(chǎn)業(yè)發(fā)展規(guī)劃
- 肝硬化課件(共45張)
- 家長會課件:小學(xué)語文二年級家長會課件
- 2024年西安電力高等專科學(xué)校單招職業(yè)技能測試題庫及答案解析
- 2024年中國科學(xué)技術(shù)大學(xué)創(chuàng)新班物理試題答案詳解
- 中職數(shù)學(xué)基礎(chǔ)模塊上冊學(xué)業(yè)水平考試第四章三角函數(shù)單元測試及參考答案
- 山東信息職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試參考試題庫(含答案)
評論
0/150
提交評論