2016-02-19 2 views
0

Я хочу, чтобы установить chosen поля для true в таблице е: \ караты для всех записей поля name, которые не любят name2 в D: \ ль таблица. Записи «ctw.name» имеют одинаковые или более символы, чем записи le.name2, поэтому я хочу реализовать поиск по диким картам; например,Изменение значений в полях, основанных на диких поисках карты между двумя таблицами

le.name2 = азбука,

ctw.name = а \ 12а

Итак, я хочу использовать дикий поиск карты, как «а%», но без жесткого кодирования записи стоимость. То есть, я хочу знать, можно ли объединить имя поля с поиском по шаблону, как показано ниже:

UPDATE ctw SET chosen = .t. WHERE LOWER(name) NOT LIKE ((select LOWER(name2) from le)+'%') 

я получаю ошибку при вводе команды function name is missing).

ответ

1

Попробуйте так:

SET ANSI OFF  
UPDATE ctw ; 
    SET chosen = .t. 
    WHERE LOWER(name) NOT IN (select LOWER(name2) from le) 
+0

Hi Tamar, Я не уверен, но OP хочет установить те, которые начинаются с le.name2 до .T.? –

1

Вероятно, это то, что вы имеете в виду:

UPDATE ctw SET chosen = .t. ; 
from le ; 
where LOWER(name) LIKE lower(trim(le.Name2))+'%' 

И потому, что по умолчанию сравнения VFP в SQL не ANSI это будет означать то же самое:

UPDATE ctw SET chosen = .t. ; 
from le ; 
where LOWER(name) = lower(trim(le.Name2)) 

Но я не буду доверять реализации, отличной от ANSI, и использовать реализацию ANSI с LIKE.

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

  • Нет связанных вопросов^_^