我有
;with cte as
(
select rn=1, name = CAST('name'as varchar(50))
union all
select rn+1, CAST(name as varchar(50))+ CAST( (rn+1) as varchar(50))
from cte where rn<100)
select * from cte
错误
消息240,级别16,状态1,第1行 锚和递归查询“cte”列“name”中的递归部分之间的类型不匹配。
答案 0 :(得分:1)
尝试类似
的内容;with cte as
(
select rn=1,
name = CAST('name'as varchar(100))
union all
select rn+1,
CAST(name as varchar(50))+ CAST( (rn+1) as varchar(50))
from cte where rn<100)
select * from cte
您必须记住,锚点和递归部分中的所有字段必须属于同一类型。这也适用于varchar字段。