我有一个 ComboBox,它从查询中获取它的源。查询字段之一是数字,如 H-1234=AAA-0382 或 HN903=BBB-94522(字段为 ID Symix
,表为 DessinSelonProjet_Choix
)。
在组合框中,我想显示这个数字,但在这两种情况下都不想显示 = 号之前的部分。我想用 Mid(number, position of = sign)
.在 SQL 中,我研究了位置函数是 CHARINDEX,但我没有设法让它工作。
这是显示整个内容时的代码:
SELECT DessinSelonProjet_Choix.[ID Symix], DessinSelonProjet_Choix.[Numéro Document],
DessinSelonProjet_Choix.Description, DessinSelonProjet_Choix.[Groupe Source]
FROM DessinSelonProjet_Choix
ORDER BY DessinSelonProjet_Choix.[ID Symix];
这是我尝试过的:
SELECT Mid(DessinSelonProjet_Choix.[ID Symix],CHARINDEX('=',
DessinSelonProjet_Choix.[ID Symix]) AS [Location]) AS Expr1,
DessinSelonProjet_Choix.[Numéro Document],
DessinSelonProjet_Choix.Description, DessinSelonProjet_Choix.[Groupe Source]
FROM DessinSelonProjet_Choix
ORDER BY DessinSelonProjet_Choix.[ID Symix];
Syntax error (missing operator) in the expression Mid(DessinSelonProjet_Choix.[ID Symix],CHARINDEX('=', DessinSelonProjet_Choix.[ID Symix]) AS [Location]) AS Expr1
最佳答案
SELECT
Mid([ID Symix], INSTR('=', [ID Symix])+1, len([ID Symix])-INSTR('=', [ID Symix])) AS Expr1,
[Numéro Document],
Description,
[Groupe Source]
FROM DessinSelonProjet_Choix
ORDER BY [ID Symix];
您的声明是在函数中使用了一个别名
。此外,您必须使用 len
来获取字符串中 =
之后的所有字符。
关于sql - Access ComboBox 的 SELECT 中正则表达式的正确形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32012628/