我在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)
但这显然不起作用。有人可以给我一些想法,写一个查询来显示结果吗?
提前致谢。
答案 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