계산 된 열은 문자열로 이어집니다
-
20-09-2019 - |
문제
다음은 내 데이터베이스의 스냅입니다.
COL1과 COL2는 모두 int로 선언됩니다.
내 ComputedColumn은 현재 다음과 같이 열 1과 2 열을 추가합니다 ...
col1 col2 ComputedColumn
1 2 3
4 1 5
이 대신에, 내 ComputedColumn은 1과 2 열에 가입해야합니다 (포함하십시오. '-' 중간에있는 캐릭터) 다음과 같이 ...
col1 col2 ComputedColumn
1 2 1-2
4 1 4-1
그렇다면 올바른 구문은 무엇입니까?
해결책
계산 된 열을 다음과 같이 정의하고있을 것입니다 col1+col2
. 노력하다 CAST(col1 AS NVARCHAR(MAX))+'-'+CAST(col2 AS NVARCHAR(MAX))
대신에.
또는 원하는 경우 교체 할 수 있습니다 NVARCHAR(MAX)
~와 함께 NVARCHAR(10)
또는 선택한 길이.
다른 팁
create table TableName
(
col1 int,
col2 int,
ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)
어떤 가치라도라면 명심하십시오 null
그런 다음 결과 ComputedColumn
또한 null
(기본 충전 및 설정 사용)
단순한:
SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
FROM Table
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn
"+"는 추가 및 연결 문자입니다. 당신은 명시 적으로 변환 할 수 있지만,이 경우 중간에 '-'를 포함하여 암시 적 변환을 유발해야합니다.
먼저 디자인 모드에서 테이블을 만듭니다
Col1 및 Col2로 2 개의 열을 추가하십시오
다른 열 computedColumn을 추가하고 계산 된 열 속성을 설정하십시오
또한 다음 스크립트를 사용할 수 있습니다
CREATE TABLE [dbo].[tbl](
[col1] [varchar](50) NOT NULL,
[col2] [varchar](50) NOT NULL,
[ComputedColumn] AS ((CONVERT([varchar],[col1],(0))+'-')+CONVERT([varchar],[col2],(0)))
)
제휴하지 않습니다 StackOverflow