SQLShack (Svenska)

den här artikeln utforskar strängmanipulationen med SQL Coalesce-funktionen i SQL Server.

string manipulation är en process för att generera en annan form av befintlig data på ett sätt som företaget använder eller visas som resultat i rapporterna. Tidigare SQL sträng funktion artiklar, jag har skrivit, inklusive SQL sträng funktioner för Data Munging och SQL Substring funktion översikt diskuterade data förberedelse och datahantering uppgifter med hjälp av inbyggda SQL Server strängfunktioner.,

SQL server har också några inbyggda teckenfunktioner som också tillåter oss att manipulera och omvandla data. Samtidigt är det viktigt att undersöka dataset, utforska datavärden och koda eller avkoda värdena, vid behov, för att generera meningsfulla data. Det är viktigt att veta hur man navigerar genom saknade värden i våra datauppsättningar, förstå inverkan på beräkningar, frågor, rapporter och datauppsättning förberedelse och komma med tekniker för att undvika att Null värden förstöra våra resultatutsättningar.

Vad är ett NULL-värde?,

innan vi gräva i hur man navigerar potentiella minfält av datauppsättningar med saknade värden och undvika att trampa på en Null, låt oss först ta en snabb titt på vad en NULL är.

som definieras av Wikipedia

Null (eller NULL) är en speciell markör som används i strukturerat frågespråk för att indikera att ett datavärde inte finns i databasen. Introducerad av skaparen av relationsdatabasmodellen, E. F., Codd, SQL Null tjänar till att uppfylla kravet att alla true relational database management systems (RDBMS) stöder en representation av ”saknad information och oanvändbar information”. Codd introducerade också användningen av den gemena grekiska omega (ω) symbolen för att representera Null i databasteori. I SQL är NULL ett reserverat ord som används för att identifiera denna markör. … Detta bör inte förväxlas med ett värde av 0. Ett null-värde indikerar brist på ett värde — en brist på ett värde är inte samma sak som ett värde på noll på samma sätt som en brist på ett svar inte är samma sak som ett svar på ”Nej”.,

dessutom …

SQL null är ett tillstånd, inte ett värde. Denna användning är helt annorlunda än de flesta programmeringsspråk, där nollvärdet av en referens betyder att den inte pekar på något objekt.

SQL ger några praktiska funktioner för att arbeta med dina teckendata i dina SQL-frågor som vi beskriver i detalj

SQL Coalesce funktion

SQL Coalesce och IsNull funktioner används för att hantera NULL värden. Under utvärderingsprocessen ersätts NULL-värdena med det användardefinierade värdet.,

funktionen SQL Coalesce utvärderar argumenten i ordning och returnerar alltid första icke-null-värde från den definierade argumentlistan.

Syntax

COALESCE ( expression )

egenskaper för SQL Coalesce-funktionen

  1. uttryck måste vara av samma datatyp
  2. Det kan innehålla flera uttryck
  3. SQL Coalesce-funktionen är en syntaktisk genväg för Kundcasuttrycket
  4. utvärderar alltid för ett heltal först, ett heltal följt av ett heltal
  5. eckenuttryck ger heltal som en utgång.,

exempel:

SQL Coalesce i en sträng concatenation operation

i följande exempel kommer vi att sammanställa några värden. Men igen, det är bara en översyn för att låta dig veta vad som händer när vi har ett nollvärde. Så, låt oss gå vidare och köra T-SQL. Och vi kan se att vi stöter på ett NULL-värde vid bearbetning av strängkoncatenationsoperation. SQL server returnerar helt enkelt NULL när det möter NULL värde. Resultatet är inte en kombination av förnamn, null och efternamn.,

1
SELECT firstName +’ ’+MiddleName+’ ’+ LastName FullName FROM Person.Person

Let us handle the NULL values using a function called SQL COALESCE. It allows handling the behavior of the NULL value., Så, i det här fallet, använd coalesce SQL-funktionen för att ersätta alla mellannamn NULL-värden med ett värde ’ ’(Char (13)-utrymme). SQL-satsen bör fortfarande sammanfoga alla tre namnen, men inga NULL-värden visas i utmatningen. Vi ser nu att det fullständiga namnet visas med ett mellanslag i mitten, för NULL-värden. På så sätt är det möjligt att effektivt anpassa kolumnvärdena.,

1
välj förnamn +’ ’+coalesce(middlenamn,”) + ’ + efternamn från person.

SQL Coalesce-funktion och pivoting

följande exempel returnerar de sammanlänkade icke-null-värdena från tabellen ”state”. I vissa fall kan du behöva tilldela de sammanfogade statiska värdena till en variabel., I detta fall analyseras värdena i stadskolumnen med hjälp av coalesce SQL-funktionen och sammanfogas i ett enda citat för att förbereda en sträng av värden. Utmatningen manipuleras sedan ytterligare för att ta bort det sista tecknet för att hämta en giltig sträng av inmatningsvärde.,

Output:

1
SELECT ’(’+substring(@col,1,len(@col)-1)+’)’

Scalar user-defined function and SQL Coalesce function

A user-defined function is created to return a string specific to the provided input and then the output is grouped using a grouping clause., I följande exempel returnerar den skalära värderade funktionen de sammanlänkade strängvärdena åtskilda av”, ”för en angiven ”Stad” – inmatning. Följande exempel returnerar en utmatning där statskolumnen är grupperad och dess städer värden är sammanlänkade och åtskilda av en avgränsare”, ” (kommatecken). Du kan också användaren STRING_AGG om du använder SQL Server 2017. Du kan hänvisa till mer information med artikeln Top SQL string funktioner i SQL Server 2017

Så här kallar vi funktionsnamnet DBO.tfn_CoalesceConcat I select-satsen.,

The output is a concatenated stream of values separated by a delimiter ‘,’

1
2
3
4

SELECT state, city = dbo.tfn_CoalesceConcat(state)
FROM dbo.,state
grupp efter stat
ORDER BY state;

datavalidering med hjälp av SQL Coalesce funktion

i följande exempel kommer vi att hitta de akuta anställdas kontakter. Vanligtvis, i någon organisation, är arbetstagarens telefonnummer listade under arbete, hem, mobiltelefon kolumner.

Låt oss se hur man hittar anställda där inga nödkontakter är listade eller med andra ord, låt oss dra alla detaljer om arbetstagaren med nödkontakter.,

i följande exempel innehåller tb_emergencycontact kontaktnummer för alla anställda.

funktionen SQL Coalesce används för att välja kolumnerna homephone, workphone och cellphone. Vid nollvärden returneras värdet ” NA ” (ej tillämpligt), en bokstavlig sträng.

SQL koalescera och beräknade kolumner

följande exempel använder SQL koalescera för att jämföra värdena för hourlywage, lön och provisionskolumner och returnera endast det icke-nollvärde som finns i kolumnerna.,

följande T-SQL används för att lista den totala lönen som betalas till alla anställda

Nu, låt oss se ett exempel för att skapa en beräknad kolumn med SQL Coalesce-funktion i SQL Server

i allmänhet kan vi behöva använda uttrycket i tabellerna. I tabeller är det nödvändigt att beräkna de värden som ofta beräknas med flera befintliga kolumner och med få skalära värden i tabellen. Dessa kolumner är också beroende av en eller flera andra kolumner., På så sätt kan vi skapa en beräknad kolumn med hjälp av coalesce SQL-funktionen så att NULL-värden hanteras effektivt.

Nu kan du se att ett enkelt SELECT-uttryck visar de förberäknade resultaten.

SQL COALESCE och CASE expression

SQL COALESCE-funktionen kan syntaktiskt representeras med hjälp av KUNDCASEUTTRYCKET. Till exempel, som vi vet, returnerar Coalesce-funktionen de första icke-NULL-värdena.,

välj COALESCE (expression1, expression2, expression3) från tabellnamn;

ovanstående coalesce SQL-sats kan skrivas om med hjälp av KUNDCASESATSEN.,id=”6df95ef3dd”>

1
2
3
4
5
6
7
8
9
10
11
12
välj
firstname+”+lastname fullname,
relation,
case
när homephone inte är null då homephone
när mobiltelefonen inte är null då mobiltelefon
när workphone inte är null då workphone
else ’na’
Indien

emergencycontactnumber
från
DBX.,tb_EmergencyContact

frågan returnerar samma resultat som den som använder funktionen COALESCE.

avsluta

i den här artikeln diskuterade vi några tips och tricks för att visa användningen av SQL Coalesce-funktionen för att fråga effektivt med T-SQL. Vi diskuterade också olika användningsfall av SQL Coalesce-funktionen. Det är också möjligt att optimera produktionen genom att skapa en beräknad kolumn.

Jag hoppas att du tyckte om den här artikeln om Coalesce-funktionen i SQL Server., Tveka inte att ställa några frågor i kommentarerna nedan.

  • författare
  • Senaste inlägg
Jag är en databastekniker med 11+ års rik, praktisk erfarenhet på databasteknik. Jag är Microsoft Certified Professional och backas upp med en Examen i Master of Computer Ansökan.
min specialitet ligger i att designa & implementera lösningar med hög tillgänglighet och plattformsoberoende DB-Migration., Tekniken som för närvarande arbetar med är SQL Server, PowerShell, Oracle och MongoDB.,
Visa alla inlägg av Prashanth Jayaram

senaste inlägg av Prashanth Jayaram (se alla)
  • en snabb översikt över databasrevision i SQL – Januari 28, 2021
  • hur du ställer in Azure datasynk mellan Azure SQL-databaser och lokaler SQL Server – januari 20, 2021
  • hur du utför Azure SQL – databas import/export operationer med PowerShell-januari 14, 2021

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *