نوشته شده توسط
veniz2008
سلام.
توجه : حتما اعداد رو دو رقمی یا 3 رقمی ثبت کنید. مثلا به جای 1 بنویسید 01 یا 001 .(با توجه به تعداد سوالاتتون).
کوئری زیر مشکل شما رو حل میکنه و 3 کاراکتر اول رو حذف میکنه.(دو کاراکتر برای عدد و یکی هم برای پرانتز).
SELECT * FROM
(
SELECT * , SUBSTRING(FieldName,4,LEN(FieldName)-3) AS a1 FROM TblTest
) Sub where a1 like '%' + @word + '%'
منظور از word@ کلمه یا حرفی هست که کاربر تایپ کرده.
حواستون باشه که این کوئری تا سوال 99 رو جواب میده اگر سوالتون بیش از 99 تاست اعداد رو 3 رقمی وارد کنید مثلا 1 میشه 001 .
موفق باشید.
البته لزومی هم نداره اعداد دو رقمی یا سه رقمی ثبت شده باشند چون میشه توسط CHARINDEX اندیس پرانتز رو بدست آورد.
اگر میخواهید با حروف مورد نظر شروع بشه:
select *
from [Table-Name]
where SUBSTRING([Column-Name] ,CHARINDEX(')',[Column-Name])+1 , len([Column-Name])-CHARINDEX(')' , [Column-Name])) like 'I%'
یا
with t
as
(
select [COLUMNS] ,
CHARINDEX(')' , [Column-Name])+1 as chIndex
from [Table-Name]
)
select [COLUMNS]
from t
where SUBSTRING(t.[Column-Name] , t.chIndex , LEN(t.[Column-Name])-t.chIndex) LIKE 'a%'
[Column-Name] نام ستونی که متن سوال در آن است.