我正在尝试过滤我在Microsoft Query中创建的Query中的结果,以将数据从数据库中提取到Excel工作表中。具体来说,我试图根据字符串的第n个字符过滤掉。
我可以根据第一个字符轻松过滤出来:
SOPOrderReturnLine.ItemCode Like 'A25%'
但我不知道如何过滤以仅显示第10个字符=“A”的条目。我确定我必须使用Substring函数,但我并不熟悉,而且我很难让它工作。
答案 0 :(得分:1)
尝试编辑sql查询并输入以下语句:
select * from SOPOrderReturnLine where substring(SOPOrderReturnLine.ItemCode,10,1) = 'A';
该语句应该适用于MySql数据库以及后台的Sql Server; (我已经用MySql数据库对其进行了测试)。
希望这有帮助。
答案 1 :(得分:0)
在MSQuery中(我认为是Jet),函数是Mid
。
SELECT * FROM tblLocation WHERE (Mid(LocationName,2,1)='e')
在第二个位置找到小写的“e”。
答案 2 :(得分:0)
我假设当您说MS Query时,您正在针对DBMS(SQL Server或其他一些通过ODBC)运行查询。
使用substr
,substring
或mid
应该有效,具体取决于哪个 DBMS。也就是说,除非您使用MS Access,否则我认为大多数DBMS都支持下划线字符作为"任何单个字符。"它甚至可能在Access中工作,但我不确定。因此,我认为除了你得到的建议之外,这在大多数情况下也会有效:
SOPOrderReturnLine.ItemCode Like '_________A%'
如果您想使用子字符串,请不要抱我这些,但我认为:
Oracle / DB2 / SQLite - substr
Microsoft SQL Server / Sybase / MySQL - substring
MS Access - mid
PostgreSQL - substr
或substring