SQLServer常見問題應對

來源:互聯網
上載者:User
server|sqlserver|問題
SQLServer常見問題應對































































































著作權©ashuixu轉載請保持完整並註明出處































































































SQL語句部分































































































1、SQL語句跨兩個以上的資料庫

問題:有時某個SQL語句需要使用兩個以上的資料庫,這樣的SQL語句怎麼寫呢?

解答:採用DataBaseName..TableName來訪問表就可以了。

舉例:































































































2、匹配查詢

問題:我要實現字串的匹配查詢,該怎麼做呢?

解答:用like,請參見SQLServer2000的線上說明。在索引中輸入“like”,內有非常詳細的說明和樣本。

補充:該問題的提出是因為筆者在查詢所有面料包含文字“50%純棉”的時候引出的,因為它包含一個或多個特殊萬用字元“%”。當筆者寫出如下語句時:


   
執行結果為(非真實資料): 





正確的寫法是:



或:












































3、交叉資料報表


問題:如何擷取交叉資料查詢結果?

解答:更為詳細的內容請參見SQLServer2000線上說明。在索引中輸入“交叉資料報表”,即可查看。

補充:在程式中可以先用Distinct或Group選出滿足條件的所有交叉資料列,然後構造出交叉資料查詢語句;如果想一個寫預存程序用於返回資料結果集,可以使用遊標、產生查詢字串,然後用系統預存程序sp_executesql執行該字串。 



















































4、都是尾部空格惹的禍

問題:在用like查詢資料時,感覺自己寫的SQL語句沒有問題,就是得不到想要的資料,怎麼回事呢?

解答:

A.由於資料存放區方式的原因,使用包含 char(固定長度) 和 varchar(可變長度) 資料模式的字串比較可能無法通過 LIKE 比較。瞭解每種資料類型的儲存方式以及導致 LIKE 比較失敗的原因十分重要。

B.當對 Unicode 資料(nchar 或 nvarchar 資料類型)使用 LIKE 時,尾隨空格是有意義的。但是對於非 Unicode 資料,尾隨空格沒有意義。



補充:請讀者自己在下面做一些實驗,親身感受一下其中的區別。 



(未完待續……)
















































相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.