PDA

View Full Version : استفاده از علامت % در دستور Sql



khoshblagh
دوشنبه 04 بهمن 1389, 11:15 صبح
با سلام خدمت دوستان
ميخواهم از طريق کد زير بزرگترين عدد از يک سري اعداد را بدست آورم . ولي روي عبارت % خطاي سينتکس ميدهد. اشکال اين کد چيست؟ متشکرم


strCoding:=qyrCodYabiCodAmval.Value;




frmSabtAmval.qyrMaxCod.Close ;

frmSabtAmval.qyrMaxCod.SQL.Clear;
frmSabtAmval.qyrMaxCod.SQL.Add('SELECT Max(CodAmval) As MaxCod');
frmSabtAmval.qyrMaxCod.SQL.Add('FROM tblAmval');
frmSabtAmval.qyrMaxCod.SQL.Add('WHERE CodAmval Like '+(strCoding+'%'));
frmSabtAmval.qyrMaxCod.Open;

hossein_h62
دوشنبه 04 بهمن 1389, 12:15 عصر
سلام
نوع فیلد CodAmval رو چی تعریف کردین ؟
عملگر % فقط برای فیلد رشته ای جواب میده!

khoshblagh
دوشنبه 04 بهمن 1389, 12:35 عصر
با سلام
نوع فيلد را تکس تعريف شده است.
مشکل اينه که علامت % را به عنوان يک کارکتر به رشته strCoding مي چسباند. و مثلا رشته اي به اين شکل را توليد ميکند %12313 در حاليکه ميخواهم دستور تمام اعدادي که 7 رقم سمت چپ آنها عدد12313 است را جستجو نمايد.اين رشته به طور کامل 10 رقم ميباشد. متشکرم

AliReza Vafakhah
دوشنبه 04 بهمن 1389, 16:52 عصر
با سلام
نوع فيلد را تکس تعريف شده است.
مشکل اينه که علامت % را به عنوان يک کارکتر به رشته strCoding مي چسباند. و مثلا رشته اي به اين شکل را توليد ميکند %12313 در حاليکه ميخواهم دستور تمام اعدادي که 7 رقم سمت چپ آنها عدد12313 است را جستجو نمايد.اين رشته به طور کامل 10 رقم ميباشد. متشکرم

کدتون رو به این کد تغییر بدهید ، ببینید درست میشه


frmSabtAmval.qyrMaxCod.SQL.Add('WHERE CodAmval Like ' + QuotedStr((strCoding+'%')));

bootshow
سه شنبه 05 بهمن 1389, 04:02 صبح
کد زیر را در dbisam query امتحان کردم.
select * from tblorder where cast(id AS char(10)) like '1%'