永洪社区

标题: sql [打印本页]

作者: yhdata_MB5fOVHS    时间: 2022-3-28 17:41
标题: sql
mysql 表里有一个字段为“部门”具体为(一级部门-二级部门-三级部门),请问我怎么用sql把它拆分成“一级部门”“二级部门”“三级部门”三列呢,(不能用拆分列,因为后面还有对这几列进行操作),谢谢呀

作者: SamuelLiu    时间: 2022-3-28 17:41
SELECT `一级部门-二级部门-三级部门`, TRIM(LEADING '-' FROM TRIM(LEADING SUBSTRING_INDEX(`一级部门-二级部门-三级部门`, '-', (1 - 1)) FROM SUBSTRING_INDEX(`一级部门-二级部门-三级部门`, '-', 1))) AS LONG_COL_0, TRIM(LEADING '-' FROM TRIM(LEADING SUBSTRING_INDEX(`一级部门-二级部门-三级部门`, '-', (2 - 1)) FROM SUBSTRING_INDEX(`一级部门-二级部门-三级部门`, '-', 2))) AS LONG_COL_1, TRIM(LEADING '-' FROM TRIM(LEADING SUBSTRING_INDEX(`一级部门-二级部门-三级部门`, '-', (3 - 1)) FROM SUBSTRING_INDEX(`一级部门-二级部门-三级部门`, '-', 3))) AS LONG_COL_2
FROM test.test1
作者: SamuelLiu    时间: 2022-3-28 18:02
是说部门字段中的值有“一级部门”“二级部门”“三级部门”?可以直接用透视表功能https://www.yonghongtech.com/hel ... F%E8%A7%86%E8%A1%A8
作者: yhdata_MB5fOVHS    时间: 2022-3-28 18:14
SamuelLiu 发表于 2022-3-28 18:02
是说部门字段中的值有“一级部门”“二级部门”“三级部门”?可以直接用透视表功能https://www.yonghongte ...

不是,是表里有一个字段叫“部门名称”,举一个值为“开发部-产品开发部-开发一组”,我现在要把它分为三个字段“一级部门”、“二级部门”、“三级部门”对应值为“开发部”、“产品开发部”、“开发一组”,这个可以用拆分列做,但是在MySQL里怎么用函数给它截取成三个字段呢,谢谢呀
作者: SamuelLiu    时间: 2022-3-28 18:25
稍等一下
作者: SamuelLiu    时间: 2022-3-28 18:32
也可以参考这个文章https://blog.csdn.net/Baby_pw/ar ... tm_relevant_index=2
作者: yhdata_MB5fOVHS    时间: 2022-3-28 18:45
SamuelLiu 发表于 2022-3-28 18:31
SELECT `一级部门-二级部门-三级部门`, TRIM(LEADING '-' FROM TRIM(LEADING SUBSTRING_INDEX(`一级部门-二 ...

嗯嗯,太感谢了
作者: SamuelLiu    时间: 2022-3-29 09:29
yhdata_MB5fOVHS 发表于 2022-3-28 18:45
嗯嗯,太感谢了






欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4