Ошибка CTE: “Типы не соответствуют между привязкой и рекурсивной частью”

Шаг 1 - Вы можете написать функцию javascript, которая будет отправлять запрос ajax вашему методу контроллера

Шаг 2 - Возвращать нужные данные из этого метода

Предполагая, что имя вашего контроллера Дома, вы можете сделать что-то вроде этого-

<button onclick="GetData()" type="submit">Search</button>

function GetData() {
    $.get("/Home/GetUserInfo", function (data) {
        // Here put what do you want from received data
    });
}
56
задан OzrenTkalcecKrznaric 18 July 2013 в 21:06
поделиться

4 ответа

В точности то, что написано:

'name1 ' имеет тип данных, отличный от ' name '+ CAST ((rn + 1) as varchar (255))

Попробуйте это (непроверено)

;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

По сути, вы должны убедиться, что длина соответствует тоже. Для рекурсивного бита вам, возможно, придется использовать CAST ('name' AS varchar (4)) , если он снова не работает

93
ответ дан 26 November 2019 в 17:15
поделиться

При использовании CONCAT в рекурсивном термине rcte так как выходной тип concat является varchar (МАКС), только необходимо бросить столбец в начальном запросе:

WITH rcte AS (
    SELECT 1 AS nr, CAST('1' AS varchar(MAX)) AS trail
    UNION ALL
    SELECT nr+1, CONCAT(trail, '/', nr+1)
    FROM rcte
    WHERE nr < 5
)
SELECT * FROM rcte;

enter image description here

0
ответ дан 26 November 2019 в 17:15
поделиться

Вам необходимо использовать оба поля nm

;with cte as
(
select  1 as rn, 
        CAST('name1' AS VARCHAR(255)) as nm
union all
select  rn+1,
        nm = CAST('name' + CAST((rn+1) as varchar(255)) AS VARCHAR(255))
from cte a where rn<10)
select * from cte
22
ответ дан 26 November 2019 в 17:15
поделиться
;with cte as
(
select 1 as rn, 'name' + CAST(1 as varchar(255)) as nm
union all
select rn+1,nm = 'name' + CAST((rn+1) as varchar(255))
from cte a where rn<10)
select * from cte
4
ответ дан 26 November 2019 в 17:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: