في SQL Server 2005، ما هو الفرق بين Len () وطول البيانات ()؟

StackOverflow https://stackoverflow.com/questions/558102

سؤال

ما هو الفرق بين LEN () وطول البيانات () في SQL Server 2005؟

هل كانت مفيدة؟

المحلول

سيعود Datalen عدد البايتات التي يتم استخدامها لتخزين القيمة:

http://msdn.microsoft.com/en-us/library/ms173486(sql.90).aspx.

سوف Len إرجاع عدد الأحرف في سلسلة. نظرا لأن السلسلة يمكن أن تستخدم أحرفا واحدة أو مزدوجة البايت، فإن هذا يختلف من DataLength، حيث ستحصل دائما على 1، بغض النظر عن مدى طول حرف واحد هو:

http://msdn.microsoft.com/en-us/library/ms190329.aspx.

نصائح أخرى

يؤدي طول البيانات إلى إرجاع طول السلسلة في بايت، بما في ذلك المساحات الزائدة. Len إرجاع الطول في الشخصيات، باستثناء المساحات الزائدة. علي سبيل المثال،

حدد LEN ("سلسلة")، Len ("String")، وضواء DataLeng ("سلسلة")، وطول DataLeng ("سلسلة")، Len (N'String ")، Len (N'Sstring")، طول DataL (N'String) ')، طول DataL (N'String')

سوف تعود 6، 6، 6، 9، 6، 6، 12، 18

Len () سوف تقليم (إزالة المساحات الزائدة) من البيانات.

لا تعمل وظيفة DataLengt ()

أمثلة: حدد LEN ("اختبار") - سيعود هذا 4

حدد طول Datal ("اختبار") - سيعود هذا 5

علاوة على ذلك (مجمع من الإجابات الأخرى الرائعة والمفيدة):

يؤدي طول البيانات إلى إرجاع طول السلسلة في بايت، بما في ذلك المساحات الزائدةhttp://msdn.microsoft.com/en-us/library/ms173486(sql.90).aspx.

Len إرجاع الطول في الشخصيات، باستثناء المساحات الزائدةhttp://msdn.microsoft.com/en-us/library/ms190329.aspx.

نظرا لأن السلاسل قد تتكون من واحد أو 2 بايت (Unicode)، فإن نتائج استخدام إما ستختلف حسب كل من نوع البيانات من السلسلة وما إذا كانت هناك مسافات زائدة في السلسلة

علي سبيل المثال،

حدد LEN ("سلسلة")، Len ("String")، وضواء DataLeng ("سلسلة")، وطول DataLeng ("سلسلة")، Len (N'String ")، Len (N'Sstring")، طول DataL (N'String) ')، طول DataL (N'String')

سيعود 6، 6، 6، 7، 6، 6، 12، 14

فيما يتعلق بأسلوتات DataLength () إرجاع عدد البايتات ولين () إرجاع قيمة عدد صحيح لعدد الأحرف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top