嗨:我有一个用这样的行组成的表格:
ID_CATEGORIA CATEGORIA_DRG
------------ ---------------------------------------------------------------
1 001-002-003-543 Craniotomia
2 004-531-532 Interventi midollo spinale
3 005-533-534 Interventi vasi extracranici
4 006 Decompressione tunnel carpale
我想得到这样的东西:
ID CATEGORIA DESCRIZIONE
------------ ------------------ --------------------------------------
1 001-002-003-543 Craniotomia
2 004-531-532 Interventi midollo spinale
3 005-533-534 Interventi vasi extracranici
4 006 Decompressione tunnel carpale
我不需要更改表格,"格式化"查询就足够了。
我认为SUBSTRING()
对我来说是正确的功能,但我不知道如何测量第一个(数字,破折号分隔(字段的长度。
在 Python 中,我会找到带有len("005-533-534 Interventi vasi extracranici".split(' ')[0])
'的大小,但我不知道如何在 SQL 中编写它
这样的事情应该做 -
SELECT ID_CATEGORIA AS ID ,SUBSTRING(CATEGORIA_DRG,1,CHARINDEX(' ',CATEGORIA_DRG)) as CATEGORIA,SUBSTRING(CATEGORIA_DRG,CHARINDEX(' ',CATEGORIA_DRG),LEN(CATEGORIA_DRG)) AS DESCRIZIONE
FROM TABLENAME
试试这个:
select id_categoria ID,
substring(categoria_drg, 1, idx) CATEGORIA,
substring(categoria_drg, idx + 1, 1000) DESCRIZIONE
from (
select id_categoria, categoria_drg, charindex(' ', categoria_drg) idx from my_table
) a
它使用charindex
来检测代码何时完成,因为它后跟字符串中的第一个空格,函数会找到:)