我获得了一个Access数据库,其中包含一列ID如下所示:
374452-52
362619
483726
384810
384612-18
我想将'-00'连接到没有-dd的值的末尾。换句话说,我可以在MS Access中使用正则表达式吗?
答案 0 :(得分:0)
你不需要正则表达式。使用LIKE
:
select id & '-00'
from mytable
where id not like '%-%';
或者,选择所有行:
select iif(id like '%-%', id, id & '-00')
from mytable;
如果您愿意,也可以使用INSTR
代替LIKE
。
答案 1 :(得分:0)
您将使用更新:
update t
set id = id & "-00"
where id not like "*-[0-9][0-9]"
您可以使用以下方法测试逻辑:
select iif(id not like "*-[0-9][0-9]", id & "-00", id) as new_id,
t.*
from t
答案 2 :(得分:0)
所以你只想连接' -00'只有当id没有结束时:一个破折号,一个数字和一个数字。正则表达式为/-[0-9][0-9]/
或/-\d\d/
。
在这里,我创建了表,然后从中进行选择:
CREATE TABLE input (
id VARCHAR(10)
);
INSERT INTO input SELECT * FROM (
SELECT '374452-52' FROM dual
UNION ALL SELECT '362619' FROM dual
UNION ALL SELECT '483726' FROM dual
UNION ALL SELECT '384810' FROM dual
UNION ALL SELECT '384612-18' FROM dual
) input;
SELECT
IIF(
LEFT(RIGHT(id,3),1)='-'
AND LEFT(RIGHT(id,2),1) BETWEEN '0' AND '9'
AND RIGHT(id,1) BETWEEN '0' AND '9'
, id
, id & '-00'
) AS fixed_id
FROM input;
fixed_id
374452-52
362619-00
483726-00
384810-00
384612-18
374452-52
362619-00
483726-00
384810-00
384612-18