VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請問:select … where ... 中 如何 過濾 .NULL.

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 1 樓

發表發表於: 星期四 七月 14, 2005 8:26 am    文章主題: 請問:select … where ... 中 如何 過濾 .NULL. 引言回覆

請問我在 VFP 中下select 指令,當在 where ... 中 如何將欄位中等於 .NULL. 給過濾出來,或是 過濾去除,

例將 庫存 table 中存量 = .null. 或 <> .null. 的給找出或去除。

我試過 where 欄位= chr(0),isnull(欄位),欄位 = null,欄位 = .null.,欄位 = isnull() 都錯

我已經不知道要何如再試了。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
bin1x



註冊時間: 2004-08-27
文章: 462


第 2 樓

發表發表於: 星期四 七月 14, 2005 8:34 am    文章主題: 引言回覆

isnull(expr) = .t.
isnull(expr) = .f.

或是 直接boolean isnull(expr) 或 not isnull(expr)
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
Pollux



註冊時間: 2004-10-01
文章: 4


第 3 樓

發表發表於: 星期四 七月 14, 2005 8:34 am    文章主題: 引言回覆

試用:
WHERE 欄位 IS [NOT] NULL
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 4 樓

發表發表於: 星期四 七月 14, 2005 10:49 am    文章主題: 引言回覆

感謝指教,在正常環境兩位所言甚是,我想是我自己寫錯了,可是我錯在那呢 ?

select a.*, b.no_vh, b.cun_vh from temp1 a left outer join hverf b on a.NO = b.no_vh where isnull(b.no_vh) = .T.

或是 b.no_vh is null 都還是無資料
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 5 樓

發表發表於: 星期四 七月 14, 2005 11:57 am    文章主題: 引言回覆

select a.*, b.no_vh, b.cun_vh from temp1 AS a left outer join hverf AS b on a.NO = b.no_vh where b.no_vh IS NULL

是我習慣的寫法,加不加 AS 好像無所謂.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 6 樓

發表發表於: 星期四 七月 14, 2005 12:44 pm    文章主題: 引言回覆

感謝 樓上兄台的回覆,可是還是查無資料,

我在想 無 where … 時,可以查出只是無 過濾,問題會不會出在 NO …WHERE … 的衝突,這讓 select 無所適從,各位前輩 我這樣的猜測對嗎?

如果是的那就用 兩行來處理:
select a.*, b.no_vh, b.cun_vh from temp1 AS a left outer join hverf AS b on a.NO = b.no_vh into cursor temp2 nofilter
select * from temp2 where no_vh is null

如果一定要用一行可以如下:
select a.* from temp1 a where a.NO not exists (select b.no_vh from hverf b)

我只是當時一直想不懂,平常用的好好的怎突然出不來了。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
dale_cn



註冊時間: 2005-06-23
文章: 16


第 7 樓

發表發表於: 星期五 七月 15, 2005 8:24 am    文章主題: 引言回覆

試試這個
select a.*, b.no_vh, b.cun_vh
from temp1 a left outer join hverf b on a.NO = b.no_vh where b.no_vh is null
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 8 樓

發表發表於: 星期五 七月 15, 2005 8:49 am    文章主題: 引言回覆

感謝 DALE CN 的回答,這與 SYNTECH 兄的作法是雷同的,結果就是查不出任何東西,
我正在試,是不是真的有所謂 NO … 與 WHERE … 的衝突,這讓 select 無所適從,

謝謝您。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 9 樓

發表發表於: 星期五 七月 15, 2005 10:23 am    文章主題: 引言回覆

語法沒錯,但邏輯錯了,剛剛才看出來.

LEFT JOIN 的條件是 a.NO = b.no_vh ,
可是卻要求 b.no_vh is null

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 10 樓

發表發表於: 星期五 七月 15, 2005 10:43 am    文章主題: 引言回覆

通常是把 NULL 過濾掉,所以是
select a.*, b.no_vh, b.cun_vh from temp1 as a left outer join hverf as b on a.NO = b.no_vh where b.no_vh IS NOT NULL

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙


syntech 在 星期五 七月 15, 2005 12:25 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
Abel



註冊時間: 2005-03-14
文章: 189
來自: 鹿港小鎮

第 11 樓

發表發表於: 星期五 七月 15, 2005 11:57 am    文章主題: 引言回覆

謝謝 syntech 的指正,確實是 邏輯上的錯誤造成衝突導致不合理。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
bin1x



註冊時間: 2004-08-27
文章: 462


第 12 樓

發表發表於: 星期六 七月 16, 2005 5:49 am    文章主題: 引言回覆

syntech 寫到:
select a.*, b.no_vh, b.cun_vh from temp1 AS a left outer join hverf AS b on a.NO = b.no_vh where b.no_vh IS NULL

是我習慣的寫法,加不加 AS 好像無所謂.


as 這樣的用法看來很奇怪
as 通常select -query 形成expression 時
會產生exp1,exp2等的欄位名稱出現
我才會使用as 對它重新命名
尤其是特別要用到時
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作