У меня возникают проблемы с сравнением строк в выражении 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);
}
Но это не печатает 1 означает, если заявление не удалось. Я также попытался
if (@old like '%' + @manual + '%')
и он по-прежнему не печатает 1.
Может кто-нибудь сказать мне, почему это, если заявление не удается?
Почему голос? –
Все, что требуется, - это один символ, который может быть другим - это может быть непечатаемый символ ('LF' vs' CR/LF'?) Или символ, который _looks_, как пространство в обеих строках, но это не так. Я бы зацикливал по-характеру, пока не найдет разницу. –
Строки, написанные здесь, на самом деле одинаковы; Я проверил. Возможно, что-то было потеряно, когда они были вставлены в Stack Overflow. Возможно, попробуйте различные комбинации разрывов строк и возврата каретки ('char (10)' и 'char (13)')? –