if 문에서 문자열을 비교하는 데 문제가 있습니다. 나는이 프로그램을 실행할 때이 if 문이 실패하는 이유는 무엇입니까?
declare @old varchar(max), @manual varchar(max)
set @old = (select ruledef from roolz where ruleid = 1234)
set @manual = 'String responseDate = subject.getField("Response Due Date");' + char(10)
+ 'if (responseDate != null && responseDate .trim().length() > 0) {' + char(10)
+ ' Map params = new HashMap();' + char(10)
+ ' params.put("Response Due Date",responseDate);' + char(10) + char(10) +
+ 'ruleUtil.launchActivity(subject,"PCT-RESP",params,"Launch_PCTRESP",false);' + char(10)
+ char(10) + '}' + char(10)
print @manual
print @old
--if (@old like '%' + @manual + '%')
if (@old = @manual)
begin
print 1;
end
이는 @old
및 @manual
이 동일한 지 보여주는 다음과 같은 출력합니다 :
String responseDate = subject.getField("Response Due Date");
if (responseDate != null && responseDate .trim().length() > 0) {
Map params = new HashMap();
params.put("Response Due Date",responseDate);
ruleUtil.launchActivity(subject,"PCT-RESP",params,"Launch_PCTRESP",false);
}
String responseDate = subject.getField("Response Due Date");
if (responseDate != null && responseDate .trim().length() > 0) {
Map params = new HashMap();
params.put("Response Due Date",responseDate);
ruleUtil.launchActivity(subject,"PCT-RESP",params,"Launch_PCTRESP",false);
}
그러나 문이 실패한 경우를 의미 하나를 인쇄하지 않습니다이 내가 가진 것입니다. 또한
if (@old like '%' + @manual + '%')
을 시도하고 여전히 1.
가사람이 왜 if 문이 실패 말해 줄 수 인쇄하지 않는 이유는 무엇입니까?
왜 아래 표를 보냅니 까? –
모든 것은 하나의 문자가 다르기 때문에 인쇄되지 않는 문자 ('LF' 대'CR/LF'?)이거나 양쪽 문자열의 공백과 비슷하지만 보이지 않는 문자 일 수 있습니다. 차이를 찾을 때까지 문자 단위로 반복합니다. –
여기에 쓰여진 문자열은 실제로 동일합니다. 나는 확인했다. 스택 오버플로에 붙여 넣을 때 뭔가가 손실되었을 수 있습니다. 어쩌면 줄 바꿈과 캐리지 리턴 ('char (10)'과'char (13)')의 다른 조합을 시도 할 것인가? –