2013-06-10 4 views
1

Мне нужно обновить поле, основанное на частичных совпадениях другого. «Поле 2» имеет длину 4 символа. То, что я пытался сделать, это посмотреть на поле 2, и если оно началось с F, то обновите Field1 до 340. Тогда, если он начинается с F, а третий символ - 3, то обновите поле с 1 по 344 и так далее.Обновление SQL на основе частей другого поля

В принципе, 340 будет правилом, когда field2 начинается с F и F * 3 * будет исключение и должно быть названо 344.

Проблема, конечно, в том, что с помощью "как F * 3 * на самом деле не ищет 3 в третьей позиции, но скорее где-то после F.

Есть ли способ сделать это? Я ценю любую помощь.

Джим

DoCmd.RunSQL "UPDATE [Table] SET [Table].[Field1] = ""340"" WHERE (([Table]![Field2] Like ""F*""));", -1 
DoCmd.RunSQL "UPDATE [Table] SET [Table].[Field1] = ""344"" WHERE (([Table]![Field2] Like ""F*3*""));", -1 
DoCmd.RunSQL "UPDATE [Table] SET [Table].[Field1] = ""343"" WHERE (([Table]![Field2] Like ""F*4*""));", -1 

ответ

0

Ваши условия могут быть специфическими для того, что вы хотите, чтобы соответствовать, так что не использовать подстановочные вообще.

Считают, что ваше первое условие может быть LEFT([Field2],1) = 'F'

Ваше второе условие может использовать SUBSTRING()

LEFT([field2],1) = 'F' AND SUBSTRING([field2],3,1) = '3' 

Таким образом, вы соответствия, где первый символ «F», а третий символ " 3 '

+0

Спасибо за ответ молниеносно! MS Access не любит substring(), но я смог использовать mid() вместо этого для того же результата. Сейчас он делает то, что я хочу. –

+0

@JR в будущем, пожалуйста, пометьте свой вопрос с помощью конкретной базы данных, которую вы используете ... Тогда люди могут убедиться, что синтаксис их ответов применим! Рад, что смог помочь. – Matthew

+0

Я буду помнить об этом в следующий раз, еще раз спасибо за помощь. –

Смежные вопросы