RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [DB] SQL 2008查詢條件的問題 修改問題   字型大小:||| 
chourain
驢有所悟
等級: 3等級: 3


今日心情

 . 積分: 12
 . 文章: 33
 . 收花: 48 支
 . 送花: 15 支
 . 比例: 0.31
 . 在線: 987 小時
 . 瀏覽: 6631 頁
 . 註冊: 6984
 . 失蹤: 1077
 . TW
#1 : 2011-4-4 11:49 PM     全部回覆 引言回覆


引用:
akbarchinaman寫到:
借用來問兩個問題:
1. 為什麼要用 Is NULL而不是 = NULL
2. SQL底下的萬用字元到底是%還是*?


1.null這個值,在SQL中算是特殊的資料,不是''(空白)也不是0,是一個空的欄位型態,也就是說,這個欄位資料是不存在的,所以不能用=或其他方式來比對出來,所以用 is null 或isnull() 內建的判斷才能比對.
2.就自己所了解%這個是用在做where判斷是的萬用字元.如
where aaa like '%tw' 表示 找出所有aaa欄位 最後二個字是 tw的資料如 12tw,abctw,tw都會給比對出來.
where aaa like '%tw%' 表示 找出所有aaa欄位 只要有tw這二個字的資料如 12tw,abctw,tw123,tw,abtwsdfasdf1都會給比對出來.
而* 是用來設定要顯示所有資料表中的欄位
官方說明:指定應該傳回 FROM 子句中所有資料表和檢視的所有資料行
select * from abc
傳回所有abc這個資料表的欄位資料
所以*和%在用法上是不同的.

select a.*,b.欄位1 from a
inner join b on a.欄位1=b.欄位1 where b.欄位1 like '%tw'
這是說.傳回.所以a資料表的欄位資料及b資料表的欄位1資料,並在資料中篩選出符合b.欄位1中最後二個字是tw的所有資料



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-4-28 07:15 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.017759 second(s), 7 queries , Qzip disabled