SQL split 如何固定中间值

Shuang 240 信誉分
2024-10-29T03:09:36.3166667+00:00

我有个列存储的值如下:AAA.BBB.CCC ,DDD.EEE

在使用substring之后,我想要AAA和DDD在同一列,CCC和EEE同一列,DDD.EEE的中间固定为空值。

如图:

User's image 如何通过查询语句实现?

SQL Server
SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
206 个问题
{count} 票

接受的答案
  1. LiHongMSFT-4306 30,671 信誉分
    2024-10-29T05:39:24.3666667+00:00

    如果你的数据中只有AAA.BBB.CCC ,DDD.EEE这两种格式的数据的话,那么你可以尝试下面这个语句:

    DECLARE @TBL TABLE(ID INT, [VALUE] VARCHAR(50))
    INSERT INTO @TBL VALUES
    (1,'AAA.BBB.CCC'),(2,'DDD.EEE')
    
    ;WITH CTE AS
    (
    SELECT [VALUE],
           PARSENAME([VALUE], 3) AS VALUE1,
    	   PARSENAME([VALUE], 2) AS VALUE2,
    	   PARSENAME([VALUE], 1) AS VALUE3 
    FROM @TBL
    )
    SELECT CASE WHEN VALUE1 IS NULL THEN VALUE2 ELSE VALUE1 END AS VALUE1,
           CASE WHEN VALUE1 IS NULL THEN NULL ELSE VALUE2 END AS VALUE2,
    	   VALUE3
    FROM CTE
    

    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。


0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。