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


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

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

نرم افزار سامانه مودیان راهکار



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 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز