我试图在字段中获取第二个值来填充查询中的列。 例如:
我能够使用MS Access完成此操作,SQL语句如下所示:
SELECT stone_schedules.mach_equip_id,
stone_schedules.timeline,
IIf(InStr(1,Mid([timeline],InStr(1,[timeline],",")+1),",")=0,0,Mid(Mid([timeline],InStr(1,[timeline],",")+1),1,InStr(1,Mid([timeline],InStr(1,[timeline],",")+1),",")-1)) AS NextSchedEntry_id
FROM stone_schedules
WHERE (((stone_schedules.active)<>"0"));
在Access中而不是在服务器上运行它的问题是它运行得太慢而且服务器端能够更快地运行它。这是我到目前为止在pgAdmin中的服务器端:
SELECT
schedules.mach_equip_id,
schedules.timeline,
--select function where I need help
FROM
stone.schedules
WHERE
schedules.active = true;
由于
答案 0 :(得分:1)
我能够找到比ms访问解决方案更容易的答案,我的猜测可能更便宜。 当值像这样分开并在花括号内部时,它是一个数组。 我可以使用以下sql语句选择数组的第二个值。
SELECT
schedules.mach_equip_id,
schedules.timeline,
schedules.timeline[2] -- using brackets made it possible to select the 2nd value
FROM
stone.schedules
WHERE
schedules.active = true;
这比我想象的要容易。