SQL Server 2008 R2에서 CONCAT 함수를 어떻게 사용합니까?
CONCAT
SQL Server 2008 R2에서 함수를 찾고있었습니다 . 나는 이 기능에 대한 링크를 발견 . 하지만이 기능을 사용하면 다음과 같은 오류가 발생합니다.
메시지 195, 수준 15, 상태 10, 줄 7
'CONCAT'은 인식 된 기본 제공 함수 이름이 아닙니다.
합니까 CONCAT
기능은 SQL 서버 2008 R2에 존재?
그렇지 않은 경우 SQL Server 2008 R2에서 문자열을 어떻게 연결합니까?
CONCAT
제공 한 링크는 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)
편집 Martin Smith는 SQL Server가 ODBC CONCAT
기능 구현을 제공 한다고 유용하게 지적 합니다 .
완전성을 위해-SQL 2008에서는 더하기 +
연산자를 사용하여 문자열 연결을 수행합니다.
샘플 코드와 함께 MSDN 참조 를 살펴보십시오 . SQL 2012부터는 새로운 CONCAT 함수 를 사용할 수 있습니다 .
연결하기 전에 모든 열을 캐스팅하는 것이 좋습니다.
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)
PRE SQL 2012 (두 가지 솔루션) :
SELECT {fn CONCAT(ISNULL(data1, ''), ISNULL(data2, ''))}
SELECT ISNULL(CAST(data1 AS varchar(MAX)), '') + ISNULL(CAST(data2 AS varchar(MAX)), '')
이 두 가지 솔루션은 @Martin Smith, @Svish 및 @ vasin1987을 포함한 다른 포스터에서 제기 한 몇 가지 훌륭한 답변과 경고를 수집합니다.
이러한 옵션은 특정 피연산자와 관련된 연산자 의 다양한 동작을 고려하면서 안전한 처리를 위해 (빈 문자열) 캐스팅에 추가 NULL
됩니다 .''
NULL
+
노트 ODBC 스케일러 기능 반면 용액의 인자로 제한 +
연산자 필요한 접근은 많은 인수로 확장된다.
varchar
여기에서 해결 된 기본 크기 와 관련하여 @Swifty에서 식별 한 잠재적 인 문제에 유의 하십시오 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
concat 기능이 작동하지 않는 곳에서 작동합니다.
참고 URL : https://stackoverflow.com/questions/10550307/how-do-i-use-the-concat-function-in-sql-server-2008-r2
'Programing' 카테고리의 다른 글
튜플 목록에서 n 번째 요소를 추출하는 방법은 무엇입니까? (0) | 2020.08.28 |
---|---|
JavaScript에서 가능한 {}를 catch하지 않고 {}을 시도 하시겠습니까? (0) | 2020.08.28 |
Bash로 일괄 이름 바꾸기 파일 (0) | 2020.08.28 |
git-브랜치가 1 커밋만큼 '원산지 / 마스터'보다 앞서 있습니다. (0) | 2020.08.28 |
pom xml의 종속성과 플러그인 태그 간의 Maven의 차이점은 무엇입니까? (0) | 2020.08.28 |