SELECT iif( LIKE(sol,'EM06%'), "other",sol) as solGroup;
FROM dpgift GROUP BY solGroup
Выше приведен столбец, содержащий уникальные значения sol.Кроме того, любое значение sol, начинающееся с EM06, должно быть сгруппировано в «other».Это не работает, но вместо этого возвращает следующее.
Solgroup
DM081
EM061
EM081
EM100
EM101
EM105
EM111
TM081
Кто-нибудь может увидеть, что я делаю здесь неправильно?2-я и 3-я строки должны называться «other».
Я использовал эту команду много раз, и раньше никогда не делал этого.Я не вижу ничего плохого в синтаксисе, и я попробовал другие варианты без успеха.Я даже пробовал приводить на случай, если определенный тип поля не работает, но результат всегда один и тот же.
edit: использование '*' и установка подстановочной строки в качестве первого параметра работает.Некоторое время я действительно делал эту ошибку следующим образом:
iif( (LIKE("4%",sol) OR sol = "4"),"8M","other");
like
здесь ничего не делает, но я не заметил, так как оператор '=' возвращает true, если sol начинается с«4» (может кто-нибудь связать меня со ссылкой на «=» поведение?).Причина, по которой я включил sol = "4"
, заключается в том, что я предположил, что% означает один или несколько символов, а не 0 или более.Как бы то ни было, я вернулся и изменил весь свой код на iif(like("wtvr*",string),stringtrue,stringfalse)
Я полагаю, использование '=' для сравнения строк не рекомендуется, так как, похоже, его не упоминают в библиотеке msdn.