Почему SQL не НРАВИТСЯ работа в Microsoft Access?

Я хочу к моему делать поисковый оператор и запросить вещи как это

select * from table where col like '%vkvk%' 

Но с методом проб и ошибок я пришел к выводу, что доступ не работает с подстановочными операторами или ПОДОБНЫМ. Делает у кого-либо есть некоторые другие решения, потому что я не нахожусь так в к доступу на самом деле, таким образом, я действительно не знаю.

6
задан JohnFx 1 April 2010 в 14:49
поделиться

2 ответа

Попробуйте:

select * from table where col like '*vkvk*'

Используйте звездочку для символа подстановки.

13
ответ дан 8 December 2019 в 12:58
поделиться

Если вы хотите использовать синтаксис SQL, похожий на SQL Server, перейдите к параметрам доступа и установите для него режим «SQL 92». Насколько мне известно, это выполняет две основные задачи (могут быть и другие):

  1. позволяет использовать% и _ в качестве подстановочных знаков вместо * и? В Jet SQL.

  2. позволяет использовать ненулевой синтаксис производной таблицы:

     SELECT MyTable. * 
    FROM (SELECT * FROM SomeTable) As MyTable 
     

... вместо bollixed-up Jet метод:

   SELECT MyTable.*
   FROM [SELECT * FROM SomeTable]. As MyTable

... который имеет проблемы с именами таблиц и полей с пробелами, так как вы должны использовать скобки внутри определения производной таблицы, что полностью нарушает синтаксис Jet.

Как я уже сказал, он может кое-что изменить, но если вы программист SQL Server, вам может быть проще включить режим SQL 92. С другой стороны, большая часть справки Access использует соглашения Access / Jet / ACE, поэтому вы можете запутаться, пытаясь ее использовать.

РЕДАКТИРОВАТЬ:

С момента публикации этого сообщения я обнаружил, что есть проблемы с включением режима SQL 92 в существующем приложении Access. Я обнаружил два:

  1. Он изменяет список зарезервированных слов, что означает, что SQL, который ранее работал со списком зарезервированных слов SQL 89, может сломаться (если он использует зарезервированное слово SQL 92).

  2. Он может разбивать поля со списком с несколькими столбцами со скрытым первым столбцом (который является очень распространенным объектом пользовательского интерфейса в приложениях Access). В частности, он нарушает поведение Autoexpend / autoselect.

Могут быть и другие проблемы, но я обнаружил их случайно, когда включил режим SQL 92 в клиентском проекте, чтобы протестировать что-то для SO, и забыл выключить его при распространении следующего обновления.К счастью, проблемы были обнаружены быстро, и мне не потребовалось много времени, чтобы определить режим SQL 92 как причину проблем.

Короче говоря, я не считаю, что режим SQL 92 в Access вообще никому нужен. Мне кажется, это функция, предназначенная для людей, которые не будут использовать Access в интерактивном режиме.

5
ответ дан 8 December 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: