根据“总账代码”列拆分为不同的列&引用;在SQL中不使用函数

根据“总账代码”列拆分为不同的列&引用;在SQL中不使用函数,sql,sql-server,Sql,Sql Server,我需要一个查询,以“.”作为分隔符,将“GL_代码”分隔成不同的列 我已经附上了一个屏幕截图的设置我已经做了,但我得到错误后,提取第7段 请注意,每行中的元素不是每行都具有相同的字符串长度 我使用的代码: select YEAR, PERIOD, AMOUNT, SUBSTRING(GL_CODE, 1, 3) AS segment1, SUBSTRING(GL_CODE, CHARINDEX('.', GL_CODE, 1) + 1, CHARINDEX('.',

我需要一个查询,以“.”作为分隔符,将“GL_代码”分隔成不同的列

我已经附上了一个屏幕截图的设置我已经做了,但我得到错误后,提取第7段

请注意,每行中的元素不是每行都具有相同的字符串长度

我使用的代码:

select 
    YEAR, PERIOD, AMOUNT, 
    SUBSTRING(GL_CODE, 1, 3) AS segment1,
    SUBSTRING(GL_CODE, CHARINDEX('.', GL_CODE, 1) + 1, CHARINDEX('.', GL_CODE, (CHARINDEX('.', GL_CODE, 1)))) AS segment2  
FROM 
    TAG_ENTITY_GL_YTD_BAL

这可能已经在stackoverflow上得到了回答。例如:


根据您的sql server版本,可能有比问题中公认的更好的选项。例如,使用内置的字符串分割函数

数据和代码的图像,并不能帮助我们帮助您,因此我们很难看出这有什么问题。无论如何,我已经将其标记为重复项,这将向您展示如何将分隔值拆分为列。我建议使用XML。我的要求是在SQLServerManagementStudio 2018中这样做。我不认为其他答案对我有帮助。“我不认为其他答案对我有帮助。”为什么不呢?什么对他们没有帮助?SSMS只是一个IDE,而不是RDBMS。请您根据我的需要修改脚本,好吗。这就是我需要它的方式:从TAG_ENTITY_GL_YTD_BAL中选择年份、期间、金额、子字符串(GL_代码,1,3)作为段1。同样地,每个GL_代码都应该使用SQL中的函数分隔为段2、段3……等等。SQL Server Management Studio 2018不支持字符串分割函数“SQL Server Management Studio 2018不支持字符串分割函数“
STRING\u SPLIT
已添加到SQL Server 2016中;您正在使用的SSMS版本与它的可用性无关,@AkshayRamesh。您的声明是完全错误的,因为SSMS的版本与您是否可以使用
STRING\u SPLIT
没有关系。