缩减结果所需的Access SQL查询
我在MS Access数据库中有一个表,需要创建一个查询来缩减结果。例如: 这是表格:缩减结果所需的Access SQL查询,sql,ms-access,Sql,Ms Access,我在MS Access数据库中有一个表,需要创建一个查询来缩减结果。例如: 这是表格: ------------------------------------- search code | relation | environment | ------------------------------------- Server.PRD | installs | Production | ------------------------------------- Server.DEV |
-------------------------------------
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”字符(其中一些是类似于“PROD”的4个字符,它们并不总是在搜索代码的末尾,例如,它可能是“Server.PROD.DB”),我运行的查询是:
SELECT TRIM(TRAILING 'PRD' FROM SELECT search code FROM TABLENAME)
但这显然不起作用。有人能给我一些想法来写一个查询来显示结果吗
提前感谢。尝试左([search code]),左([search code])-3)
编辑:要搜索
,请使用INSTR
功能,如下所示:左([search code],INSTR([search code]),'.')-1)
编辑:要处理空值、空字符串等:
IIF
(
(INSTR([search code], '.') = 0 OR [search code] IS NULL),
[search code],
LEFT([search code], INSTR([search code], '.') - 1)
)
注意:这不会处理同一个值中的多个
。感谢您的快速响应。左功能有效!但我需要的不仅仅是删除每个搜索代码的最后三个字符。请参考我问题中粗体的句子。抱歉造成歧义。您的SELECT=构造在ANSI-92查询模式下不适用于我。这只是一个ANSI-89查询模式吗?…也不会处理所有可能出现的情况,例如空值、空字符串等。请尝试将“[search code short]=LEFT([search code]、InStr([search code]、”)-1)”更改为“LEFT([search code]、InStr([search code]、”)-1)作为[search code short]”。这个问题没有提到空字符串或空字符串。。。[:)]
SELECT [search code short] = LEFT([search code], InStr([search code], '.') - 1),
[search code],
relation
environment
FROM TABLENAME