减少结果所需的访问SQL查询

时间:2009-10-23 02:43:07

标签: sql ms-access

我在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',它们并不总是在搜索代码的末尾,例如它可能是'Server'。 PROD.DB'),我运行的查询是:

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

但这显然不起作用。有人可以给我一些想法,写一个查询来显示结果吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

尝试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)
)

请注意,这不会处理同一值中的多个.

答案 1 :(得分:0)

SELECT [search code short] = LEFT([search code], InStr([search code], '.') - 1),
       [search code],
       relation
       environment
FROM TABLENAME