توابع رشته اي در اسكيوال سرور 2005 (قسمت اول)
ASCII ( character_expression )
كد اسكي يك كاراكتر رو برميگردونه و اگر يك عبارت رشته اي وارد كنيم كد اسكي سمت چپي ترين كاراكتر اون رشته رو برميگردونه و خروجي اون يك عدد از نوع int هست
CHAR ( integer_expression )
دقيقا عكس تابع بالا عمل ميكنه و كاراكتر متناظر با كد اسكي وارد شده رو برميگردونه
CHARINDEX ( expression1 ,expression2 [ , start_location ] )
پيدا كردن و برگرداندن مكان عبارت اول در عبارت دوم اگه پيدا نكرد صفر (بصورت ديفالت از ابتداي عبارت دوم شروع به جستجو ميكنه كه قابل تغييره با پارامتر سوم تابع)
مثال
1: 1: SELECT Charindex ('winsharp','my blog name is winsharp')
خروجي 17
SOUNDEX ( character_expression )
كدي رو برميگردونه كه براساس اون ميشه اسامي(و يا كلمات)ي رو كه صداشون يكي هست رو تشخيص داد
مثال
1: SELECT SOUNDEX ('hosaini'), SOUNDEX ('hasani')
خروجي H250
DIFFERENCE ( character_expression , character_expression )
بر اساس تابع SOUNDEX با برگرداندن عددي در بازه صفر تا 4 ميزان شباهت دو عبارت وروديش رو تعيين ميكند
مثال
1: SELECT DIFFERENCE('Green','Greene')
خروجي 4
LEFT ( character_expression , integer_expression )
N كاراكتر از سمت چپ پارامتر اول را بر ميگرداند (n همان پرامتر دوم است)
مثال
1: select LEFT('winsharp',3)
خروجي win
RIGHT ( character_expression , integer_expression )
مثل تابع بالايي فقط از سمت راست
LEN ( string_expression )
تعداد كاركتر هاي عبارت وارد شده را برميگرداند
LOWER ( character_expression )
كاراكتر هاي عبارت وارد شده رو به كاركتر كوچك معادل تبديل ميكند
UPPER ( character_expression )
برعكس تابع بالايي
LTRIM ( character_expression )
فضا هاي خالي عبارت را از سمت چپ حذف ميكند
RTRIM ( character_expression )
عكس تابع بالايي عمل ميكنه
UNICODE ( 'ncharacter_expression' )
كد كاراكتر (و يا اولين كاركتر عبارت) داده شده را برا ساس استاندارد يونيكد برميگرداند
من تو اس کیو ال نویسی چندان وارد نیستم میخواستم بپرسم چطور میشه یک یا چند رشته رو با طول خاص رو از پایگاه داده استخراج کرد؟
پاسخحذفاز تابع LEN تو قسمت Where ت استفاده کن.
پاسخحذفمثلا فرض کن جدولی داری که ستونی بنام FirstName داره کوئری زیر تمام کسانی که اسمشون مثلا 8 حرفی رو برمیگردونه
Select * from tbl_person where len(FirstName)=10