问条查询组合的SQL语句,该如何处理

问条查询组合的SQL语句
现在有张树形表里面有两个字段myID,parentID,现在我新增了一个字段codeID

现在需要写SQL语句根据myID,parentID生成codeID

codeID=myID+parentID+(myID.parentID.parentID)+.......

也就是说,A记录的parentID的记录可能有parentID,一直要到parentID为null才能结束
------解决方案--------------------
CREATE TABLE 树形表(myID int, parentID int, codeID int)
GO
INSERT INTO 树形表(myID,parentID)
SELECT 1,NULL UNION ALL
SELECT 2,1 UNION ALL
SELECT 3,1 UNION ALL
SELECT 4,2 UNION ALL
SELECT 5,4 UNION ALL
SELECT 6,3

WITH cte (myID,parentID,codeID) AS (
    SELECT myID,
           parentID, 
           myID
      FROM 树形表
     WHERE parentID IS NULL
    UNION ALL
    SELECT t.myID,
           t.parentID,
           t.myID + p.codeID
      FROM 树形表 t
      JOIN cte p
        ON t.parentID = p.myID
)
UPDATE 树形表
   SET codeID = cte.codeID
  FROM 树形表, cte
 WHERE 树形表.myID = cte.myID

SELECT * FROM 树形表

       myID    parentID      codeID
----------- ----------- -----------
          1        NULL           1
          2           1           3
          3           1           4
          4           2           7
          5           4          12
          6           3          10

------解决方案--------------------
转成 int 

CREATE TABLE #树形表
(myID nvarchar(255), 
parentID nvarchar(255),
 codeID nvarchar(500))
GO
INSERT INTO #树形表(myID,parentID)
SELECT 1,NULL UNION ALL
SELECT 2,1 UNION ALL
SELECT 3,1 UNION ALL
SELECT 4,2 UNION ALL
SELECT 5,4 UNION ALL
SELECT 6,3
go
WITH cte (myID,parentID,codeID) AS (
    SELECT CONVERT (int,myID)myID,
          CONVERT(int, parentID)parentID, 
          CONVERT(int ,myID)myID
      FROM #树形表
     WHERE parentID IS NULL
    UNION ALL
    SELECT CONVERT (int,t.myID)myID,
            CONVERT(int, t.parentID)parentID,
           t.myID + p.codeID
      FROM #树形表 t
      JOIN cte p
        ON t.parentID = p.myID
)
UPDATE #树形表
   SET codeID = cte.codeID
  FROM #树形表, cte
 WHERE #树形表.myID = cte.myID

SELECT * FROM #树形表