Sql 我想从一个特定的字段中获取数据
我有疑问Sql 我想从一个特定的字段中获取数据,sql,Sql,我有疑问 SELECT SUBSTR('GENERAL - COMPUTERS - COMPUTER WORKSTATION', 1, (INSTR('GENERAL - COMPUTERS - COMPUTER WORKSTATION', '-')-1)) first, substr('GENERAL - COMPUTERS - COMPUTER WORKSTATION', instr('GENERAL - COMPUTERS - COMPUTER WORKSTATION', '-') +
SELECT SUBSTR('GENERAL - COMPUTERS - COMPUTER WORKSTATION', 1, (INSTR('GENERAL - COMPUTERS - COMPUTER WORKSTATION', '-')-1)) first,
substr('GENERAL - COMPUTERS - COMPUTER WORKSTATION', instr('GENERAL - COMPUTERS - COMPUTER WORKSTATION', '-') + 1) second
from mtl_categories_v
where segment1 = '01';
结果如下:
first second
GENERAL COMPUTERS - COMPUTER WORKSTATION
但我想要一个能给出结果的查询
first second third
GENERAL COMPUTERS COMPUTER WORKSTATION
请告诉我在破折号前后提取字符的方法。假设您使用的是MySQL:
SELECT TRIM(SUBSTRING_INDEX(col, '-', 1)) AS first,
TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(col, '-', 2), '-', -1)) AS second,
TRIM(SUBSTRING_INDEX(col, '-', -1)) AS third
FROM mtl_categories_v
WHERE segment1 = '01';
此处演示:
您正在使用哪些数据库管理系统?在Postgres中,您只需使用
string\u to\u array()