線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:957
推到 Plurk!
推到 Facebook!

請問利用ADOQuery篩選條件的問題

尚未結案
chaochichen
一般會員


發表:9
回覆:4
積分:2
註冊:2005-07-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-11 03:27:02 IP:140.117.xxx.xxx 未訂閱
目前是只有一個資料表,裡面有兩個欄位 一個是id一個是dialog, id就純粹只是記錄筆數而已, 而dialog是記錄不同長度的句子, 比如像這樣:    id      dialog --------------- 1     I have a question about programming. 2     Can you answer me? 3     Yes I do.    現在想要利用SQL語法把句子裡面的空格超過5的句子都選出來, 這樣應該要怎麼選呢? 比如說依照這個條件去篩選上面那個資料表例子, 出來的結果就只會選到第一筆資料: id      dialog --------------- 1     I have a question about programming.    我是用ADO而不是BDE, 麻煩各位高手幫幫忙,謝謝~~
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-11 08:33:22 IP:210.65.xxx.xxx 未訂閱
Hi chaochichen,    原理大致如下:    1.將 Dialog 欄位去除左右空白(LTRIM、RTRIM) 2.將已去除左右空白之 dialog 欄位的空白以空字串替代掉(REPLACE) 3.以一結果之字串長度減去二結果之字串長度即字串中空白個數(LEN) 4.結果三大於等於四之 Dialog 即為所求    以下以 SQL Server 為範例
SELECT  DIALOG
FROM    YOURTABLE
WHERE   LEN(LTRIM(RTRIM(DIALOG))) - LEN(REPLACE(RTRIM(LTRIM(DIALOG)),' ','')) >= 4
PS:若有疑問請告知你使用何種資料庫及版本? 發表人 -
------
Fishman
chaochichen
一般會員


發表:9
回覆:4
積分:2
註冊:2005-07-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-11 22:08:31 IP:140.117.xxx.xxx 未訂閱
嗯...他出現錯誤訊息是 "運算是中未定義的REPLACE函數" 不知這樣是哪裡出了問題? 我的資料庫是Access,2002
引言: Hi chaochichen, 原理大致如下: 1.將 Dialog 欄位去除左右空白(LTRIM、RTRIM) 2.將已去除左右空白之 dialog 欄位的空白以空字串替代掉(REPLACE) 3.以一結果之字串長度減去二結果之字串長度即字串中空白個數(LEN) 4.結果三大於等於四之 Dialog 即為所求 以下以 SQL Server 為範例
SELECT  DIALOG
FROM    YOURTABLE
WHERE   LEN(LTRIM(RTRIM(DIALOG))) - LEN(REPLACE(RTRIM(LTRIM(DIALOG)),' ','')) >= 4
PS:若有疑問請告知你使用何種資料庫及版本? 發表人 - >< face="Verdana, Arial, Helvetica">
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-12 10:30:02 IP:218.15.xxx.xxx 未訂閱
插个花: 试试如下,  
SELECT dialog FROM YOURTABLE
where dialog like '* * * * *';  //5个通配符
 
============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
系統時間:2024-07-01 10:46:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!