문제

이 구문을 사용하여 오류가 발생합니다.

update table set field1 = (field1+' - '+field2) where field1 = 'somevalue'

나를 위해이 일을하는 것은 너무 행복하지 않습니다. 연결을위한 '+'가 선택한 진술에서 작동한다는 것을 알고 있습니다. 그래서 이것이 올바른 구문입니다. 여기에 다른 것이 있습니다 ... 그리고 나는 괄호도 제거하려고 시도했습니다.

예시:

Field1 = '치즈'및 Field2 = 'Conqueso'인 경우
그런 다음 내 업데이트는 Field1 = 'Cheese'가 Field1 = 'Cheese -Conqueso'에있는 모든 레코드를 설정해야합니다.


편집하다:
두 필드 모두 텍스트 필드입니다

도움이 되었습니까?

해결책

오류를 제공하지 않고 말하기는 어렵지만 아마도 결합 된 데이터 크기는 필드 1을 초과 할 수 있습니다.

예 : if field1 varchar (50) 및 field2 varchar (50), 결합 된 총액은 당신을 포함하여 최대 103자가 될 수 있습니다. ' - ', Field의 50자를 초과합니다.

다른 팁

(편집 : 사전 날짜 업데이트 데이터 유형을 명확히합니다 text; 그러나 잘 작동합니다 varchar(max))

여기서 잘 작동합니다 (SQL2005) :

create table [table] (
   field1 varchar(max) not null,
   field2 varchar(max) not null)
insert [table] values ('somevalue','abc')
insert [table] values ('other','def')
update [table] set field1 = (field1+' - '+field2) where field1 = 'somevalue'
select * from [table]

출력 :

field1               field2
-------------------- --------------------
somevalue - abc      abc
other                def
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top