| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		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) | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		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 文章: 4252 來自: 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. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		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 文章: 4252 來自: Taipei,Taiwan
  第 9 樓
  | 
		
			
				 發表於: 星期五 七月 15, 2005 10:23 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				語法沒錯,但邏輯錯了,剛剛才看出來.
 
 
LEFT JOIN 的條件是 a.NO = b.no_vh ,
 
可是卻要求 b.no_vh is null _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: 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 次修改 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		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 對它重新命名
 
尤其是特別要用到時 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |