تسلط بر تابع LEFT در SQL Server: راهنمای جامع برای استخراج داده از چپ
تابع LEFT در SQL Server یک تابع رشتهای است که برای استخراج تعداد مشخصی کاراکتر از سمت چپ یک رشته استفاده میشود. این تابع در موقعیتهای مختلفی مانند نمایش خلاصهای از دادهها، تجزیه و تحلیل رشتهها یا قالببندی خروجی کاربرد دارد.
**نحوه استفاده از تابع LEFT**
ساختار کلی استفاده از تابع LEFT به این صورت است:
LEFT ( character_expression , integer_expression )
در این ساختار، `character_expression` رشتهای است که میخواهید کاراکترها را از آن استخراج کنید. این میتواند یک ستون، متغیر یا یک لیترال (مقدار ثابت) باشد. `integer_expression` نیز یک عدد صحیح مثبت است که تعداد کاراکترهایی که میخواهید از سمت چپ `character_expression` برگردانده شود را مشخص میکند. اگر `integer_expression` صفر یا منفی باشد، تابع یک رشته خالی برمیگرداند.
**مثالهای کاربردی تابع LEFT**
برای درک بهتر، به چند مثال توجه کنید.
**مثال ساده تابع LEFT**
در این مثال، تابع LEFT ده کاراکتر اول را از سمت چپ رشته “SQL Server LEFT Function Example” استخراج میکند:
SELECT LEFT('SQL Server LEFT Function Example', 10) AS LEFT_Function_Example;
نتیجه “SQL Server” خواهد بود.
**تابع LEFT در SQL با استفاده از جدول**
ابتدا یک جدول نمونه به نام `Person` ایجاد کرده و دادههایی را در آن وارد میکنیم:
CREATE TABLE Person (
ID INT IDENTITY(1,1) PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Email VARCHAR(100)
);
INSERT INTO Person (FirstName, LastName, Email) VALUES
('John', 'Doe', 'john.doe@example.com'),
('Jane', 'Smith', 'jane.smith@example.com'),
('Peter', 'Jones', 'peter.jones@example.com'),
('Alice', 'Williams', 'alice.williams@example.com'),
('Robert', 'Brown', 'robert.brown@example.com');
حالا برای استخراج 5 کاراکتر اول از نام کوچک (FirstName) هر شخص، از تابع LEFT استفاده میکنیم:
SELECT LEFT(FirstName, 5) AS LeftFirstName FROM Person;
**تابع LEFT در SQL با شرط WHERE**
میتوانید از تابع LEFT در شرط WHERE نیز استفاده کنید تا ردیفهایی را فیلتر کنید که بخشی از رشته آنها با شرط مورد نظر مطابقت دارد. به عنوان مثال، برای یافتن افرادی که نام کوچک آنها با حرف ‘J’ شروع میشود:
SELECT LEFT(FirstName, 5) AS LeftFirstName FROM Person WHERE LEFT(FirstName, 1) = 'J';
**تابع LEFT در SQL با عبارت ORDER BY**
تابع LEFT را میتوان همراه با ORDER BY برای مرتبسازی نتایج بر اساس بخشی از یک رشته استفاده کرد. در این مثال، نتایج بر اساس نام کوچک افراد مرتب میشوند:
SELECT LEFT(FirstName, 5) AS LeftFirstName FROM Person ORDER BY FirstName;
**ترکیب تابع LEFT با SUBSTRING و CHARINDEX**
یکی از کاربردهای قدرتمند تابع LEFT، ترکیب آن با CHARINDEX و SUBSTRING است. این ترکیب به شما امکان میدهد تا بخشی از یک رشته را تا یک کاراکتر خاص استخراج کنید. برای مثال، برای استخراج نام کاربری از آدرس ایمیل (قسمت قبل از علامت ‘@’):
SELECT LEFT(Email, CHARINDEX('@', Email) - 1) AS UserName FROM Person;
در اینجا `CHARINDEX(‘@’, Email)` موقعیت علامت ‘@’ را پیدا میکند و با کم کردن 1، طول رشته مورد نظر (نام کاربری) را به تابع LEFT میدهد.
**تابع LEFT در SQL با مقادیر NULL**
اگر `character_expression` یا `integer_expression` مقدار NULL داشته باشد، تابع LEFT نیز NULL برمیگرداند.
وقتی رشته ورودی NULL است:
SELECT LEFT(NULL, 10) AS NULL_Example;
وقتی تعداد کاراکترهای درخواستی NULL است:
SELECT LEFT('SQL Server LEFT Function Example', NULL) AS NULL_Example;
وقتی هر دو ورودی NULL هستند:
SELECT LEFT(NULL, NULL) AS NULL_Example;
در هر سه حالت، نتیجه NULL خواهد بود.
**تفاوت تابع LEFT و SUBSTRING**
در حالی که تابع LEFT کاراکترها را همیشه از ابتدای رشته (سمت چپ) استخراج میکند، تابع SUBSTRING انعطافپذیری بیشتری دارد و به شما امکان میدهد کاراکترها را از هر موقعیتی در رشته استخراج کنید. SUBSTRING علاوه بر رشته و طول، یک پارامتر برای نقطه شروع نیز میگیرد.
SUBSTRING ( expression , start , length )
برای مثال، `SUBSTRING(‘Hello World’, 7, 5)` نتیجه ‘World’ را برمیگرداند که از موقعیت 7 شروع شده و 5 کاراکتر را استخراج کرده است، در حالی که LEFT همیشه از موقعیت 1 شروع میکند. انتخاب بین LEFT و SUBSTRING به نیاز شما برای استخراج داده بستگی دارد؛ LEFT برای شروع از سمت چپ مناسب است، و SUBSTRING برای استخراج از هر نقطه دلخواه.