خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را

تفاوت توابع LEFT و SUB STRING در SQL Server

تفاوت توابع LEFT و SUB STRING در SQL Server

کد مطلب : 9077


در محیط SQL Server از بین توابع رشته ای که در دسترسی استفاده شما هستند، توابع LEFT و SUBSTRING را دارید. این دو ظاهرا رفتاری مشابه هم دارند ولی تفاوت هایی هم دارند که در این پست به تفاوت های این دو خواهیم پرداخت. در خصوص تابع SUBSTRING به این لینک مراجعه کنید. ولی در خصوص تابع LEFT، همان طور که از نام آن بر می آید، از سمت چپ، تعدادی مشخصی از کاراکترها را بر می گرداند. بنابراین، تابع LEFT فقط از سمت چپ رشته، تعداد مشخصی از کاراکترها را برمیگرداند. تابع Resturn به سمت خاصی از یک رشته متنی محدود نمی شود و می تواند تعداد مشخصی کاراکتر از رشته را برگرداند.

آموزش سالیدورکز 20-2019

Same Result

برای برگرداندن تعداد مشخصی از کاراکترها از سمت چپ، می توان از هر دو تابع استفاده کرد. پس این نقطه هر دو تابع است.

SELECT
LEFT('Buckethead', 6) AS [LEFT],
SUBSTRING('Buckethead', 1, 6) AS [SUBSTRING];

خروجی به صورت زیر خواهد بود:

+--------+-------------+
| LEFT | SUBSTRING |
|--------+-------------|
| Bucket | Bucket |
+--------+-------------+

تابع LEFT فقط به دو آرگومان (عبارت و تعداد کاراکترها برای بازگشت) نیاز دارد ، در حالی که SUBSTRING به سه آرگومان (عبارت ، موقعیت شروع و تعداد کاراکترها برای بازگشت از آن موقعیت شروع) نیاز دارد.

تابع SUBSTRING در گرفتن داده از وسط رشته بسیار بهتر از تابع LEFT عمل می کند و در واقع تابع Left برای این منظور طراحی نشده است که اگر واقعا می خواستید چنین کاری انجام دهید، باید LEFT را با Right همزمان استفاده می کردید. مانند مثال زیر:

SELECT
LEFT(RIGHT('Buckethead', 7), 3) AS [LEFT/RIGHT],
SUBSTRING('Buckethead', 4, 3) AS [SUBSTRING];

خروجی:

+--------------+-------------+
| LEFT/RIGHT | SUBSTRING |
|--------------+-------------|
| ket | ket |
+--------------+-------------+

Accepted Data Types

تابع LEFT دیتاتایپ هایی از نوع text و ntext را به عنوان اولین پاراکتر یا آرگومان قبول نمی کند. LEFT از همه دیتاتایپ هایی که می توانند به varchar و nvarchar تبدیل شوند پشتیبانی می کند. در مقابل تابع SUBSTRING کاراکترهایی که از نوع image، ntext، text، binary و غیره هستند را قبول می کند.
خروجی تابع LEFT از نوع varchar می باشد البته اگر اولین آرگومان از نوع non-Unicode باشد و در غیر اینصورت، nvarchar برمیگرداند.
مقادیر برگشتی برای تابع SUBSTRING به شرح زیر است:

char/varchar/text	varchar
nchar/nvarchar/ntext nvarchar
binary/varbinary/image varbinary



دیدگاه ها(0)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.

لطفا پیش از ارسال دیدگاه ، به نکات زیر توجه فرمایید :

- از نوشتن دیدگاه های غیر مرتبط با پست جدا خودداری کنید.
- لطفاً دیدگاه های خود را با حروف فارسی تایپ کنید، دیدگاه های فینگیلیش تایید نمی شوند.
- قبل از ارسال دیدگاه حتما متن پست و نظرات سایر دوستان را بخوانید . نظرات اسپم و تکراری تایید نخواهند شد.
- نظر شما ممکن است بدون پاسخ تایید شوند که در این صورت باید منتظر پاسخ از سوی دیگر کاربران باشید .
- لطفا انتقادات و پیشنهادات و همچنین درخواست های خود را از طریق ایمیل khoshamoz[at].hotmail.com ارسال نمایید
- چرا آموزش های سایت خوش آموز در قالب فایل pdf به صورت یکجا ارائه نمی شوند؟
- چرا برخی پرسش های کاربران پاسخ داده نمی شوند؟

آموزش های رایگان خوش آموز