2010年5月10日 星期一

MS SQL字串中的單引號要如何表示

今天協助同事處理SQL查詢速度太慢的問題,原來的語法是:
Select * from Table_A LeftJoin OpenQuery(Another_DB_Server,'Select * from DB.dbo.Table_B') as Table_B on
(Table_A.Col_1=Tbale_B.Col_1 AND
Table_B.Col_4='D')
Where Table_A.YYMM='201005'
其中Table_A資料筆數約15萬筆,Table_B資料筆數約20萬筆,這個查詢查下去要花56秒,我看了以後直覺就是兩個大Table Join不慢才有鬼,所以我第一件事就是先減少遠端查詢的資料筆數,也就是在OpenQuery那行SQL指令作手腳,原本是:
Select * from DB.dbo.Table_B
改成:
Select * from DB.dbo.Table_B Where Col_4='D'

可是問題來了,在OpenQuery中的這段SQL指令是一個字串,前後都要用單引號包著,快兩年沒用SQL了,字串中的單引號要如何表示早就忘了,找一本SQL指令的書看半天都找不到,只好拜Google大神,一下就找到答案了,就是用兩個單引號表示,將原本的SQL指令改為:
Select * from Table_A LeftJoin OpenQuery(Another_DB_Server,'Select * from DB.dbo.Table_B Where Col_4=''D''') as Table_B on
(Table_A.Col_1=Tbale_B.Col_1)

眼花了吼!
'Select * from DB.dbo.Table_B Where Col_4=''D'''
[單引號]Select * from DB.dbo.Table_B Where Col_4=[單引號][單引號]D[單引號][單引號][單引號]

2010年2月4日 星期四

[轉錄]EMBA電子報 捍衛你的時間

我有訂閱EMBA電子報,今天看到的其中一篇,讓我想到近期導入ERP專案所遇到的一些問題,有感覺的地方我用粗體標示,以下資料轉錄自EMBA電子報:

有一家企業團訂客戶的高階主管,把去年一整年EMBA雜誌裡,對他們公司來說最重要的二十個觀念列表整理下來,印成兩頁A4的紙,與同仁分享。
當他把這兩張紙與我分享時,作為雜誌的編輯者,我心中相當感動。這也讓我想到,那麼我自己呢?二○○九年我對於這整年度的EMBA雜誌裡,印象最深刻的,是哪一個觀念?
首先跳出腦袋的,是專訪波士頓顧問公司(BCG)全球CEO博克納時,他說的一段話(二七六期,八月號)。
專訪中,我問他,作為全球頂尖的顧問公司領導人,每個人見到你時,無不希望向你尋求解答。但總有時候,即便是你自己都可能有困惑,這時你怎麼想出答案?
「如果你問我,你應該留長髮還是短髮,我當然可以談一談長髮和短髮的優缺點,但這必須和你喜歡什麼有關。答案不是『短髮』或『長髮』。」博克納緩緩地說,「客戶的情況也是一樣。如果你問我:『我應該推出新產品嗎?』答案不是「Yes」或「No」,而是:你的目標是什麼?你擅長做這件事嗎?經過這些步驟,來發展出『你』的解決方案,而不是由我開出藥方。」
是的,希臘哲人不是用兩個字道盡一切學問了嗎?「了解自己。」(Know thyself.)重點在於自己身上。
如果我們不知道自己要往哪裡去,眼前的一切可能都是機會。但這其實是經過包裝的陷阱,它讓團隊忙著執行各種活動,但浪費了公司的金錢、資源與時間。
事實上,這中間最重要的,是時間。管理團隊的時間和能量,正是企業的策略性資產。因此,高階主管應該透過一些做法來捍衛這些資產。例如,設定四○%的時間,必須用在和策略優先要務有關的事;或要求自己,發展一個簡單的主題,來團結整個組織,連結所有的活動(第282期第三六頁)。
由豐田和通用汽車合資的NUMMI汽車廠,曾經在沒有替換任何員工的情況下,讓公司短短一年內品質大幅提高,士氣顯著提升。負責推動這個改造的顧問舒克(John Shook),剖析這段過程,他說,傳統的想法是,要推動企業文化的改變,一開始是要促成價值觀和態度的改變,才能做對的事。
但他在改造這家汽車廠的經驗中,得到的結論卻相反。他指出,在改變企業文化時,有效的做法其實是,先定義我們想展現的行為,接著再採取流程強化這些行為,最後才能促成文化的改變(第282期第六二頁)。
這些長期基本的課題,就讓我們用新年長假慢慢咀嚼。