我的表有一列p_no VARCHAR(50) NOT NULL
存储序列号。序列号格式为"XXX/0000/18/DEPT"
或"XX/0001/18/DEPT"
。我想检索序列号中的整数以生成另一个序列号。任何人都可以帮忙吗?
这是我开始使用并卡住的一段代码
SELECT CASE
WHEN SUBSTRING(p_no,0,3) = 'XXX' THEN MAX(SUBSTRING(p_no,4,4))
WHEN SUBSTRING(p_no,0,3) = 'XX' THEN MAX(SUBSTRING(p_no,3,4))
END
FROM tbl_project
GROUP BY SUBSTRING(p_no,0,4)
预期结果是"0001"
如果值是"XXX/0000/18/DEPT"
和"XX/0001/18/DEPT"
使用以下命令获取值 Integer CONVERT(INT, SUBSTRING(p_no, CHARINDEX('/', p_no, 0) + 1, 4))
既然你想要最大,你可以使用 MAX(CONVERT(INT, SUBSTRING(p_no, CHARINDEX('/', p_no, 0) + 1, 4)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句