2017-09-21 8 views
3

필드에서 두 값을 변경하려고하는 case 문이 있습니다. cl.trade_day_count의 값이 'ACT'또는 'ACT + 1'이 포함 된 경우SQL Server T-SQL 바꾸기

CASE 
WHEN prod_map.Product_ID1 = 'CR' 
THEN REPLACE(REPLACE(cl.trade_day_count, 'ACT','ACTUAL'),cl.trade_day_count, 
'ACT+1', 'ACTUAL') 
END, 

그렇다면, '실제'로 변경 알렉스 K. 코멘트에서 대답 작업

+0

첫 번째 대체 결과는 두 번째 대체 함수의 첫 번째 매개 변수로 사용하려는 값입니다. 따라서 cl.trade_date_count는 다시 필요하지 않습니다. 바꾸기는 3 개의 매개 변수를 취합니다. 가장 바깥 쪽이 4를 표시하고 있습니다. – xQbert

+0

'~'은'cl.trade_day_count'에 없으므로 절대로 ... http://rextester.com/XYVO11480'바꾸기 ACTUAL '),'~ ',' ')' – xQbert

답변

2

:

REPLACE(REPLACE(cl.trade_day_count, 'ACT','ACTUAL'),'ACTUAL+1', 'ACTUAL') 
+1

이 (ACT + 1 ~ 'ACT + 1'~ 'ACT + 1 ~ ACT + 1 -> ACTUAL + 1을 대신 할 것입니다.하지만 그는 스스로 ACTUAL을 원하고 오버랩 문제가 있다고 생각합니다. –

+1

'REPLACE (REPLACE (cl.trade_day_count, 'ACT', 'ACTUAL'), 'ACT + 1' ACTUAL ')'ACT 또는 ACT + 1 값에 대해서는 정상적으로 작동하는 것 같습니다. – xQbert

+0

@fercstar 편집과 관련하여 : 다른 모든 값이 null이 아니길 바란다는 것을 어떻게 알았습니까? 다른 사람은 본래의 질문에 있지 않았습니다. CR 인 경우 ACT 및 ACT + 1 값만 원하지만 실제 값은 표시 할 수 있습니까? – xQbert