반응형
열 값을 쉼표로 구분 된 목록으로 연결
열 값이 쉼표로 구분 된 문자열로 표시되도록 출력 형식을 지정하는 TSQL 구문은 무엇입니까?
예를 들어, 내 테이블 CARS에는 다음이 있습니다.
CarID CarName
----------------
1 Porsche
2 Mercedes
3 Ferrari
자동차 이름을 다음과 같이 어떻게 얻습니까? Porsche, Mercedes, Ferrari
coalesce
예를 들어 테이블의 레코드에서 일련의 문자열을 연결하는 데 사용하는 바로 가기를 수행 할 수 있습니다 .
declare @aa varchar (200)
set @aa = ''
select @aa =
case when @aa = ''
then CarName
else @aa + coalesce(',' + CarName, '')
end
from Cars
print @aa
SELECT LEFT(Car, LEN(Car) - 1)
FROM (
SELECT Car + ', '
FROM Cars
FOR XML PATH ('')
) c (Car)
다음을 사용하여이 작업을 수행 할 수 있습니다.
SELECT Stuff(
(
SELECT ', ' + CARS.CarName
FROM CARS
FOR XML PATH('')
), 1, 2, '') AS CarNames
SQL Server 2017 또는 Azure SQL Database에서 실행중인 경우 다음과 같이합니다.
SELECT STRING_AGG(CarName,',') as CarNames
FROM CARS
쿼리 내의 또 다른 솔루션 :
select
Id,
STUFF(
(select (', "' + od.ProductName + '"')
from OrderDetails od (nolock)
where od.Order_Id = o.Id
order by od.ProductName
FOR XML PATH('')), 1, 2, ''
) ProductNames
from Orders o (nolock)
where o.Customer_Id = 525188
order by o.Id desc
(편집 : STUFF 선언에 대해 @ user007에게 감사드립니다)
DECLARE @CarList nvarchar(max);
SET @CarList = N'';
SELECT @CarList+=CarName+N','
FROM dbo.CARS;
SELECT LEFT(@CarList,LEN(@CarList)-1);
감사는 누가 쿼리 중에 데이터 누적 사용을 보여준 사람에게 기인합니다.
DECLARE @SQL AS VARCHAR(8000)
SELECT @SQL = ISNULL(@SQL+',','') + ColumnName FROM TableName
SELECT @SQL
다음 코드로 이것을 시도하십시오.
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' , '') + CarName
FROM Cars
SELECT @listStr
참조 URL : https://stackoverflow.com/questions/1048209/concatenating-column-values-into-a-comma-separated-list
반응형
'development' 카테고리의 다른 글
아키텍처 i386에 대한 정의되지 않은 기호 : libMo.a의 PlatCompress (enumCompressOperation, CompressCookie *, void *, long)에서 참조 된 "_deflate" (0) | 2020.12.27 |
---|---|
Oracle Virtual Box에 액세스 할 수 없음 (0) | 2020.12.27 |
winform DataGridview 헤더의 색상을 변경하는 방법은 무엇입니까? (0) | 2020.12.26 |
Django가 HTTP 301을 반환합니까? (0) | 2020.12.26 |
Paint.setTextSize ()의 단위 설정 방법 (0) | 2020.12.26 |