上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
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 文章: 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. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
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. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
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 次修改 |
|
回頂端 |
|
 |
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 對它重新命名
尤其是特別要用到時 |
|
回頂端 |
|
 |
|