Доступ к SQL-запросу, необходимому для обрезки результата - PullRequest
2 голосов
/ 23 октября 2009

У меня есть таблица в базе данных MS Access, и мне нужно создать запрос, чтобы урезать результат. Например:

вот таблица:

-------------------------------------
search code | relation | environment |
-------------------------------------
Server.PRD  | installs | Production  |
-------------------------------------
Server.DEV  | installs | Development |
-------------------------------------

Результат, который мне нужно отобразить в виде запроса:

---------------------------------------------------------
search code short | search code | relation | environment |
---------------------------------------------------------
Server            | Server.PRD  | installs | Production  |
---------------------------------------------------------
Server            | Server.DEV  | installs | Development |
---------------------------------------------------------

Мне сложно разработать запрос для отображения результата, как указано выше. Поэтому я попытался разбить задачу на мелкие кусочки, но теперь я застрял на самом первом шаге:

Я пытался обрезать символы 'PRD' или 'DEV' ( некоторые из них представляют собой 4 символа, такие как 'PROD', и они не всегда находятся в конце кода поиска, например это может быть 'Сервер. PROD.DB '), запрос, который я запустил, был:

SELECT TRIM(TRAILING 'PRD' FROM SELECT search code FROM TABLENAME)

но это, очевидно, не работает. Может, кто-нибудь подскажет, как написать запрос для отображения результата?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 23 октября 2009

Попробуйте LEFT([search code], LEN([search code])-3)

РЕДАКТИРОВАТЬ : Для поиска . используйте функцию INSTR, например: LEFT([search code], INSTR([search code], '.') - 1)

РЕДАКТИРОВАТЬ : для обработки значения NULL, пустой строки и т. Д .:

IIF
(
   (INSTR([search code], '.') = 0 OR [search code] IS NULL), 
   [search code], 
   LEFT([search code], INSTR([search code], '.') - 1)
)

Обратите внимание, что это не может обрабатывать более одного . в одном и том же значении.

0 голосов
/ 23 октября 2009
SELECT [search code short] = LEFT([search code], InStr([search code], '.') - 1),
       [search code],
       relation
       environment
FROM TABLENAME
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...