Microsoft SQL Server
VERSCHMELZEN
Suche…
Syntax
- COALESCE ([Spalte1], [Spalte2] .... [SpalteN])
Verwenden von COALESCE zum Erstellen einer durch Kommas getrennten Zeichenfolge
Wir können eine durch Kommas getrennte Zeichenfolge aus mehreren Zeilen mit Hilfe von coalesce erhalten, wie unten gezeigt.
Da die Tabellenvariable verwendet wird, müssen Sie die gesamte Abfrage einmal ausführen. Um es leicht verständlich zu machen, habe ich den BEGIN- und END-Block hinzugefügt.
BEGIN
--Table variable declaration to store sample records
DECLARE @Table TABLE (FirstName varchar(256), LastName varchar(256))
--Inserting sample records into table variable @Table
INSERT INTO @Table (FirstName, LastName)
VALUES
('John','Smith'),
('Jane','Doe')
--Creating variable to store result
DECLARE @Names varchar(4000)
--Used COLESCE function, so it will concatenate comma seperated FirstName into @Names varible
SELECT @Names = COALESCE(@Names + ',', '') + FirstName
FROM @Table
--Now selecting actual result
SELECT @Names
END
Coalesce-Basisbeispiel
COALESCE()
gibt den ersten NON NULL
Wert in einer Liste von Argumenten zurück. Nehmen wir an, wir hätten eine Tabelle mit Telefonnummern und Handynummern und wollten nur eine für jeden Benutzer zurückgeben. Um nur einen zu erhalten, können wir den ersten NON NULL
Wert erhalten.
DECLARE @Table TABLE (UserID int, PhoneNumber varchar(12), CellNumber varchar(12))
INSERT INTO @Table (UserID, PhoneNumber, CellNumber)
VALUES
(1,'555-869-1123',NULL),
(2,'555-123-7415','555-846-7786'),
(3,NULL,'555-456-8521')
SELECT
UserID,
COALESCE(PhoneNumber, CellNumber)
FROM
@Table
Der erste Wert ist nicht null aus einer Liste von Spaltenwerten
SELECT COALESCE(NULL, NULL, 'TechOnTheNet.com', NULL, 'CheckYourMath.com');
Result: 'TechOnTheNet.com'
SELECT COALESCE(NULL, 'TechOnTheNet.com', 'CheckYourMath.com');
Result: 'TechOnTheNet.com'
SELECT COALESCE(NULL, NULL, 1, 2, 3, NULL, 4);
Result: 1
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow