sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är DATALENGTH() i SQL Server?

I SQL Server (och Azure), T-SQL DATALENGTH() funktion returnerar antalet byte som används för att representera ett uttryck.

Till exempel:

SELECT DATALENGTH('Lit');

Resultat:

3

I det här fallet finns det 3 byte i strängen Lit .

Detta är dock ett enkelt exempel. Resultaten kan se mycket olika ut, beroende på datatyp.

I exemplet ovan såg vi att det finns 3 byte i ordet Lit . Detta råkar också vara exakt hur många tecken som finns i strängen. Men om vi returnerar samma ord från en kolumn i en databas kan vi få ett annat resultat. Till exempel detta:

SELECT 
    ArtistName, 
    DATALENGTH(ArtistName) AS DataLength 
FROM Artists 
WHERE ArtistName = 'Lit';

Resultat:

ArtistName  DataLength
----------  ----------
Lit         6          

I detta fall är datalängden 6.

Anledningen till detta är att kolumnen i just den här databasen har en nvarchar(255) data typ. nvarchar datatypen är en unicode-sträng som lagrar 2 byte per tecken (vilket i praktiken fördubblar datalängden). Om kolumnen istället hade använt varchar(255) den skulle ha en datalängd på 3. Men om den hade säg, char(25) strängen skulle ha en datalängd på 25.

Dessutom, om det tidigare hade varit char(25) men den konverterades sedan till varchar(255) den skulle fortfarande ha en datalängd på 255.

Men i alla fall, LEN() funktion skulle ha returnerat 3.

Avslutande ämnen

DATALENGTH() Funktionen räknar efterföljande blanksteg (t.ex. mellanslag i slutet av strängen, tabbar, vagnretur, etc).

Exempel:

SELECT DATALENGTH('Lit ');

Resultat:

4

I det här exemplet lade jag helt enkelt till ett mellanslag i slutet av strängen. Detta är ytterligare en av skillnaderna mellan LEN() och DATALENGTH() .

Du kan se exempel på LEN() och DATALENGTH() sida vid sida i LEN() kontra DATALENGTH() .

Returtyp

DATALENGTH() funktion returnerar datatypen int , om inte uttrycket är  varchar(max)nvarchar(max) eller varbinary(max) , i så fall returnerar den bigint .


  1. Hur ADDTIME() fungerar i MariaDB

  2. Sätt att komma åt Oracle Database i PostgreSQL

  3. Begränsa en länkad server till en enda lokal inloggning (T-SQL-exempel)

  4. Fix:Åtkomst nekad för användaren 'root'@'localhost' i MariaDB