Microsoft SQL Server
골짜기
수색…
통사론
- COALESCE ([Column1], [Column2] .... [ColumnN]
COALESCE를 사용하여 쉼표로 구분 된 문자열 작성
아래와 같이 병합을 사용하여 여러 행에서 쉼표로 구분 된 문자열을 얻을 수 있습니다.
테이블 변수가 사용 되었기 때문에 전체 쿼리를 한 번 실행해야합니다. 따라서 이해하기 쉽도록 BEGIN 및 END 블록을 추가했습니다.
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()
는 인수 목록에서 첫 번째 NON NULL
값을 반환합니다. 전화 번호와 휴대 전화 번호가 포함 된 테이블이 있고 각 사용자에 대해 하나만 반환하려고한다고 가정합니다. 오직 하나를 얻기 위해서 우리는 첫번째 NON NULL
값을 얻을 수있다.
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
열 값 목록에서 첫 번째가 아닌 null 가져 오기
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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow