#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%';