SORU
8 Ocak 2010, Cuma


LEN SQL Server sonunda boşluk dahil değil işlevi

SQL Server 2005'te aşağıdaki test tablo var:

CREATE TABLE [dbo].[TestTable]
(
 [ID] [int] NOT NULL,
 [TestField] [varchar](100) NOT NULL
) 

Doldurulur:

INSERT INTO TestTable (ID, TestField) VALUES (1, 'A value');   -- Len = 7
INSERT INTO TestTable (ID, TestField) VALUES (2, 'Another value      '); -- Len = 13   6 spaces

SQL Server LEN ile TestField uzunluğunu bulmaya çalıştığımda() sonunda boşluk - örneğin sayılmaz fonksiyonu

-- Note: Also results the grid view of TestField do not show trailing spaces (SQL Server 2005).
SELECT 
 ID, 
 TestField, 
 LEN(TestField) As LenOfTestField, -- Does not include trailing spaces
FROM 
 TestTable

Ne kadar uzunlukta sonucu sonunda boşluk vardır?

CEVAP
8 Ocak 2010, Cuma


Bu açıkça LEN Birleşik Devletleri http://msdn.microsoft.com/en-us/library/ms190329(SQL.90).aspx MSDN Microsoft tarafından belgelenmiştir "belirtilen dize ifade, izleyen boşluklar dahil karakter sayısını" verir. Ancak, eğer dikkatli iseniz kaçırmamanız için kolay bir ayrıntıdır.

Yerine DATALENGTH işlevini kullanın - http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx - görmek gerekir "bayt herhangi bir ifade göstermek için kullanılan sayısını" verir.

Örnek:

SELECT 
    ID, 
    TestField, 
    LEN(TestField) As LenOfTestField,           -- Does not include trailing spaces
    DATALENGTH(TestField) As DataLengthOfTestField      -- Shows the true length of data, including trailing spaces.
FROM 
    TestTable

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • huyked

    huyked

    28 Mart 2008
  • William Hyde

    William Hyde

    23 HAZİRAN 2008