SQL Server常見問題應對 版權所有 ashuixu 轉載請保持完整并注明出處 SQL語句部分 1、SQL語句跨兩個以上的 數據庫 問題: 有時某個 SQL語句需要使用兩個以上的數據庫," name="description" />
MILY: 宋體; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: "Times New Roman"">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 數據,尾隨空格沒有意義。
補充:請讀者自己在下面做一些試驗,親身感受一下其中的區別。
(未完待續……)