запрос access 2003 для удаления первого символа поля в другое поле, если это буква L

#sql #ms-access

#sql #ms-access

Вопрос:

Точно так же, как указано в моем заголовке, мне нужен запрос, который удаляет первый символ из [Parameter_Value] в [Parameter_Flag], если первым символом является буква L. В противном случае он остается неизменным. В [Parameter_Value] нет пустых значений, поскольку они уже были удалены.

я придумал способ. но для этого требуется перенести все целые числа с L, используя критерии типа «L *», в другую таблицу. а затем удаление первых символов каждого поля при добавлении L в столбец [параметр_флаг] . usign критерии НЕ похожи на «L *», чтобы получить остальные значения в другой таблице. а затем объедините их.

Есть ли более эффективный способ?

введите описание изображения здесь

Комментарии:

1. привет! я убедился, что не было других символов, кроме верхнего регистра L. Спасибо!

Ответ №1:

Я устал от своего Access (JET) SQL, но я думаю, это то, что вы хотите:

 UPDATE table
SET Parameter_Flag = "L",
    Parameter_Value = MID(Parameter_value, 2)
WHERE Parameter_Value LIKE "L*"
  

Ответ №2:

* Подстановочный знак работает только в режиме запроса ANSI-89 («традиционный режим»). Возможно, безопаснее использовать ALIKE , который использует одни и те же стандартные символы подстановки независимо от режима запроса, например

 UPDATE table
   SET Parameter_Flag = 'L',
       Parameter_Value = MID$(Parameter_value, 2)
 WHERE Parameter_Value ALIKE 'L%';