Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Lỗi CTE:Các loại không khớp giữa phần neo và phần đệ quy

Chính xác những gì nó nói:

'name1' có kiểu dữ liệu khác với 'name' + CAST((rn+1) as varchar(255))

Hãy thử cái này (chưa được kiểm tra)

;with cte as
(
select 1 as rn, CAST('name1' as varchar(259)) as nm
union all
select rn+1,nm = 'name' + CAST((rn+1) as varchar(255))
from cte a where rn<10)
select * from cte

Về cơ bản, bạn cũng phải đảm bảo độ dài phù hợp. Đối với bit đệ quy, bạn có thể phải sử dụng CAST('name' AS varchar(4)) nếu nó không thành công một lần nữa



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phân biệt chữ hoa chữ thường Postgres

  2. EF4 - Thủ tục được lưu trữ đã chọn trả về không có cột nào

  3. SQL để tìm ký tự không phải số đầu tiên trong một chuỗi

  4. Sử dụng đám mây Spotlight để giải quyết việc chặn máy chủ SQL

  5. SQL Server:số hàng tối đa trong bảng