  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		Patrick Wu
 
 
  註冊時間: 2007-01-03 文章: 228 來自: 台北市
  第 1 樓
  | 
		
			
				 發表於: 星期五 六月 08, 2007 11:27 am    文章主題: SQL 查詢 指令相同 為何查詢結果是亂碼 | 
				     | 
			 
			
				
  | 
			 
			
				圖一的指令為:
 
SELECT DISTINCT POS_COD , POS_CTY ,  POS_ALL ; 
 
FROM POS_CALL ; 
 
WHERE "台中市" $ POS_CTY ; 
 
ORDER BY POS_CTY =============>OK
 
 
圖二的指令為:
 
SELECT DISTINCT SUBSTR(POS_CTY , AT("市" , POS_CTY)  + 2 , AT("區" , POS_CTY)  - AT("市" , POS_CTY) )   ; 
 
FROM POS_CALL ; 
 
WHERE "台中市" $ POS_CTY ====>取出 區 如 中區 西屯區 ===> OK
 
 
圖三的指令為:
 
SELECT DISTINCT SUBSTR(POS_CTY , AT("縣" , POS_CTY)  + 2 , AT("鄉" , POS_CTY)  - AT("縣" , POS_CTY) )   ; 
 
FROM POS_CALL ; 
 
WHERE "彰化縣" $ POS_CTY ====>取出 鄉  ===> 亂碼 ???? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Erwin
 
 
  註冊時間: 2003-03-28 文章: 97 來自: 台北
  第 2 樓
  | 
		
			
				 發表於: 星期五 六月 08, 2007 1:36 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				SELECT DISTINCT PADR( SUBSTR(POS_CTY , AT("縣" , POS_CTY) + 2 , AT("鄉" , POS_CTY) - AT("縣" , POS_CTY) ), 10, ' ') ; 
 
FROM POS_CALL ; 
 
WHERE "彰化縣" $ POS_CTY
 
 
會出現亂碼是因它以取出合乎資料的第一筆欄寬為準, 也就是第一筆只有一個 BYTE吧。
 
所以強制設定取出結果的長度才不會出錯 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Patrick Wu
 
 
  註冊時間: 2007-01-03 文章: 228 來自: 台北市
  第 3 樓
  | 
		
			
				 發表於: 星期五 六月 08, 2007 2:07 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 合乎資料的第一筆欄寬為準 => 謝謝 Erwin 的指導 我再試試 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Patrick Wu
 
 
  註冊時間: 2007-01-03 文章: 228 來自: 台北市
  第 4 樓
  | 
		
			
				 發表於: 星期五 六月 08, 2007 2:08 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 謝謝 Erwin 的指導 測試相當的成功 謝謝 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |