SQL Server 2008 R2에서 CONCAT 기능을 사용하려면 어떻게 해야 합니까?
찾고 있었어요.CONCAT
SQL Server 2008 R2에서 작동합니다.저는 이 기능에 대한 링크를 찾았습니다.하지만 이 기능을 사용하면 다음과 같은 오류가 발생합니다.
Msg 195, 레벨 15, 상태 10, 라인 7
'CONCAT'는 인식되는 기본 제공 함수 이름이 아닙니다.
하십니까?CONCAT
SQL Server 2008 R2에 함수가 있습니까?
그렇지 않은 경우 SQL Server 2008 R2에서 문자열을 연결하려면 어떻게 해야 합니까?
완전성을 위해 SQL 2008에서는 +를 사용합니다.+
문자열 연결을 수행하는 연산자입니다.
샘플 코드가 있는 MSDN 참조를 살펴봅니다.SQL 2012부터는 새로운 CONCAT 기능을 사용할 수 있습니다.
CONCAT
SQL Server 2012의 새로운 기능입니다.당신이 제공한 링크는 이것을 명확하게 합니다. 2008 R2를 포함한 이전 버전에서는 기능이 아닙니다.
SQL Server 2012의 일부라는 내용은 문서 트리에서 확인할 수 있습니다.
SQL Server 2012
Product Documentation
Books Online for SQL Server 2012
Database Engine
Transact-SQL Reference (Database Engine)
Built-in Functions (Transact-SQL)
String Functions (Transact-SQL)
EDIT Martin Smith는 SQL Server가 ODBC 기능의 구현을 제공한다고 유용하게 지적합니다.
모든 기둥을 모조하기 전에 주조하는 것이 좋습니다.
cast('data1' as varchar) + cast('data2' as varchar) + cast('data3' as varchar)
이것은 당신에게 효과가 있을 것입니다.
설명한 대로 CONCAT는 SQL Server 2012 이전 버전에서는 지원되지 않습니다.그러나 제안된 대로 + 연산자를 사용하여 간단히 연결할 수 있습니다.그러나 이 연산자는 첫 번째 피연산자가 숫자일 경우 오류를 던질 것입니다. 이 연산자는 연결되지 않고 추가될 것이라고 생각하기 때문입니다.이 문제를 해결하려면 앞에 '를 추가하십시오.예를들면
someNumber + 'someString' + .... + lastVariableToConcatenate
오류가 발생하지만'' + someNumber + 'someString' + ......
잘 될 겁니다.
또한, 연결될 두 숫자가 있다면 그들 사이에 " "를 추가해야 합니다.
.... + someNumber + '' + someOtherNumber + .....
SQL Server 2012 CONCAT 함수에 대한 대체 근사치의 NULL 안전 강하
SQL Server 2012:
SELECT CONCAT(data1, data2)
SQL 2012 이전 버전(두 가지 솔루션):
SELECT {fn CONCAT(ISNULL(data1, ''), ISNULL(data2, ''))}
SELECT ISNULL(CAST(data1 AS varchar(MAX)), '') + ISNULL(CAST(data2 AS varchar(MAX)), '')
이 두 가지 솔루션은 1987년 @Martin Smith, @Svish 및 @vas를 포함한 다른 포스터에서 제기된 몇 가지 훌륭한 답변과 경고를 비교합니다.
이러한 옵션은 추가됩니다.NULL
로.''
(빈 줄) 안전을 위한 주조NULL
다양한 행동을 설명하면서 다루는 것.+
특정 피연산자와 관련된 연산자.
ODBC Scaler Function 솔루션은 2개의 인수로 제한되는 반면 연산자 접근 방식은 필요에 따라 많은 인수로 확장됩니다.
@한 잠재적인 는 @ @Swifty에서 확인할 수 .varchar
는 여기 크는다수정으로 되었습니다.varchar(MAX)
.
(city + ', ' + state + ' ' + zip) as ctstzip for select
(city + ', ' + state + ' ' + zip) for insert
필드 유형이 다른 경우에만 캐스트 또는 변환합니다.
삽입할 때 값이 올바른 위치에 있어야 합니다.as를 사용하면 오류가 발생합니다.
예.
Insert into testtable (ctstzip) Values ((city + ', ' + state + ' ' + zip))
예, 이 기능은 sql 2008에 없습니다.캐스트 작업을 사용하여 이 작업을 수행할 수 있습니다.
를 들면 를들어, 우는리가 있습니다.employee
테이블 그리고 당신이 원하는name
와 함께applydate
.
를 사용할 수 있습니다.
Select cast(name as varchar) + cast(applydate as varchar) from employee
콘캣 기능이 작동하지 않는 곳에서 작동할 것입니다.
contat하고 싶은 문자열 사이에 '+'를 사용할 수 있습니다.
SELECT string1 + string2
열 중 하나가 int 열인 경우와 같은 변환 오류가 발생하면 다음과 같은 열을 연결하기 전에 이를 캐스트해야 합니다.
SELECT (CONVERT(nvarchar, intColumn) + string2
언급URL : https://stackoverflow.com/questions/10550307/how-do-i-use-the-concat-function-in-sql-server-2008-r2
'programing' 카테고리의 다른 글
템플릿 형식의 C# 일반 new()에 인수 전달 (0) | 2023.05.26 |
---|---|
포트 80(Ubuntu/Linode)에서 Node.js를 실행하는 경우의 모범 사례 (0) | 2023.05.26 |
Node.js에서 기본 HTML 로드 (0) | 2023.05.26 |
Python 3에서 바이트에 대한 b' 접두사 없이 인쇄 (0) | 2023.05.26 |
새 _id를 사용하여 MongoDB에서 문서 복제 (0) | 2023.05.26 |