Microsoft SQL Server
VÄXA SAMMAN
Sök…
Syntax
- COALESCE ([kolumn1], [kolumn2] .... [ColumnN]
Använda COALESCE för att bygga kommadelimerad sträng
Vi kan få en kommaavgränsad sträng från flera rader med coalesce som visas nedan.
Eftersom tabellvariabel används måste vi köra hela frågan en gång. Så för att göra det lätt att förstå har jag lagt till BEGIN och END block.
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-grundexempel
COALESCE()
returnerar det första NON NULL
värdet i en lista med argument. Anta att vi hade en tabell som innehåller telefonnummer och mobiltelefonnummer och ville bara returnera en för varje användare. För att endast få ett, kan vi få det första NON NULL
värdet.
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
Få den första inte noll från en lista med kolumnvärden
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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow