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

如何將一字串資料欄位,直接用select語法直接轉出成數值?

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



註冊時間: 2007-02-09
文章: 56


第 1 樓

發表發表於: 星期四 一月 31, 2008 4:28 pm    文章主題: 如何將一字串資料欄位,直接用select語法直接轉出成數值? 引言回覆

請問各位大大,
如何將一字串資料欄位,直接用select語法直接轉出成數值?
我用 select val(字串資料欄位) as 數值 from 資料表 into cursor temp
結果內容都變 *
但用 ? val(字串資料欄位) 檢查,郤可得到正確的 數值
有其他可用的轉換函數?
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 2 樓

發表發表於: 星期五 二月 01, 2008 9:37 am    文章主題: 引言回覆

經實際測試過並不會有你說的情形,
數字的長度 = 字串欄位的長度 + SET DECIMALS TO

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
wuno2001



註冊時間: 2007-02-09
文章: 56


第 3 樓

發表發表於: 星期五 二月 01, 2008 4:19 pm    文章主題: 引言回覆

我是用VFP6.0,不知道是不是版本這個原因.
我試用 list stru
去檢查產生的欄位型態,結果是:數值型態,寛度1,小數位數0
所以內容都是*
回頂端
檢視會員個人資料 發送私人訊息
215001



註冊時間: 2003-06-11
文章: 389


第 4 樓

發表發表於: 星期五 二月 01, 2008 5:06 pm    文章主題: 引言回覆

我於VFP6 及 VFP8 測試也都正常
建議你另外建立資料檔,再做測試看看
若還是不行,可將測試的資料畫面貼上來,比較好幫你解決
回頂端
檢視會員個人資料 發送私人訊息
Erwin



註冊時間: 2003-03-28
文章: 97
來自: 台北

第 5 樓

發表發表於: 星期日 二月 03, 2008 12:59 am    文章主題: 引言回覆

請試
select iif(val(字串資料欄位)=0, 0000000000, val(字串資料欄位)) as 數值 from 資料表 into cursor temp
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
syntech



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

第 6 樓

發表發表於: 星期一 二月 04, 2008 10:09 am    文章主題: 引言回覆

[未經實驗,講錯不管!! ^_^ ]

我印象中,
轉出格式由第一筆紀錄決定 (?)
所以第一筆如果放非數值的資料,
是不是就轉不出來?

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

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



註冊時間: 2004-02-17
文章: 67


第 7 樓

發表發表於: 星期一 二月 04, 2008 12:18 pm    文章主題: 引言回覆

syntech 寫到:
[未經實驗,講錯不管!! ^_^ ]

我印象中,
轉出格式由第一筆紀錄決定 (?)
所以第一筆如果放非數值的資料,
是不是就轉不出來?


syntech前輩! 你沒說錯,的確是如此!之前沒發現~為此煩惱了好久!
但是又不常遇到!遇到時又忘了!

可是樓主的狀況!我就不確定是不是這原因引起的!
提供的原因訊息太少了!

像Erwin兄,所提供的
select iif(val(字串資料欄位)=0, 0000000000, val(字串資料欄位)) as 數值 from 資料表 into cursor
如果打成
select iif(val(字串資料欄位)=0, 0, val(字串資料欄位)) as 數值 from 資料表 into cursor
一但第一筆的iif()成立,就會發生後面筆數的欄位寬度不足,變成*
回頂端
檢視會員個人資料 發送私人訊息
wuno2001



註冊時間: 2007-02-09
文章: 56


第 8 樓

發表發表於: 星期一 二月 04, 2008 2:32 pm    文章主題: 引言回覆

感謝各位大大的回應:
這樣就解決了,因為第一筆是null的關係(sorry,有點烏龍 Rolling Eyes ).
select iif(isnull(字串資料欄位), 000000000.00, val(字串資料欄位)) as 數值 from 資料表 into cursor temp
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 9 樓

發表發表於: 星期一 二月 04, 2008 2:41 pm    文章主題: 引言回覆

雖然我ㄧ開始就這樣猜,
但是我不想讓別人失去DEBUG及討論的樂趣. XD

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

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



註冊時間: 2003-03-28
文章: 97
來自: 台北

第 10 樓

發表發表於: 星期二 二月 05, 2008 3:09 am    文章主題: 引言回覆

我方向是對但也是故意沒寫出正確答案^_^|||
還好樓主有想到答案, 不過照
select iif(isnull(字串資料欄位), 000000000.00, val(字串資料欄位)) as 數值 from 資料表 into cursor temp
如果第一筆不是null的話, 應該也是會有出現***的可能
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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