查询字段中有空格的sql语句怎么写?(100分)

  • 主题发起人 主题发起人 xgydelphi
  • 开始时间 开始时间
X

xgydelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
有表A,两个字段a char(10),b char(10)
b 中有数据如 'tom jack','jane','merry chri'
怎么写sql语句查询b中含有空格的记录呢?(不包括字符串两头的空格)
 
sql无法完成任务
 
SELECT * FROM A WHERE CHARINDEX(' ',(TRIM(b))>0
charindex(字符串1,字符串2)的作用是返回字符串1在字符串2中的位置,
trim(b)确保不包含左右的空格,charindex(' ',trim(b))>0确保是中间有空格。
 
adoquery1.Active:=false;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from test');
adoquery1.SQL.Add('where aa like ''%'+' '+'%''');
adoquery1.Active:=true;
 
Select * from ''TblName.db'' TblName Where TblName.''A''=:pA;
Params.ParamFieldByName('pA').DataType:=ftString;
Params.ParamFieldByName('pA').Value:='tom jack';


 
用参数就行了,怎么会无法完成任务呢?
 
我错了,lccc的回答最符合你的本意。
 
where trim(aa) like '% %'
 
lccc:
好象有ltrim,rtrim,无trim
 
lccc的方法是可行的,不过trim函数在DELPHI中有,而在SQL中用的是ltrim,rtrim
terry_lzs的方法会将首尾有空格的记录也取出来了,在查询条件中应该再加上判断
 
to xgydelphi and lipingcool:
的确是,应该用:SELECT * FROM A WHERE CHARINDEX(' ',(LTRIM(RTRIM(b)))>0
谢谢!
 
呵,又学到了一招,谢谢各位。 :D
 
多人接受答案了。
 
后退
顶部