Olgerda
Зарегистрирован: 15.08.2007 Сообщения: 2
|
Добавлено: Ср Фев 13 2008 20:58 Заголовок сообщения: Привидение sql запроса к каноническому виду |
|
|
Возникла проблема: необходимо сравнить 2 SQL-запроса, написанные разными людьми, причем один из них (образец) находится в каноническом виде. Для этого нужно привести проверяемый запрос к каноническому виду.
Как разобрать на лексемы и как построить структуру - это понятно, но как найти алгоритм для преобразования запроса?
Может кто сталкивался с подобной проблемой?
Для примера привожу 2 эквивалентных по результатам запроса:
SELECT DISTINCT SPJ.SNUM
FROM SPJ, SPJ AS SPJ_1
WHERE (((SPJ_1.SNUM)=[spj].[snum]) AND ((SPJ.JNUM)="J1") AND ((SPJ_1.JNUM)="J2"));
и
SELECT SPJ.SNUM
FROM SPJ
WHERE (((SPJ.SNUM) In (select snum from spj where jnum="J2")) AND ((SPJ.JNUM)="J1")); |
|