Не удается получить размер строк с использованием DataLength и жестко закодированных имен столбцов

Я пытаюсь написать запрос SQL, который покажет мне записи, которые имеют наибольший размер, а также имена пользователей, связанные с этой записью.

SELECT 
    Data.Id,
    User.UserName, 
    (
    ISNULL(DATALENGTH(ColumnA), 1) + 
    ISNULL(DATALENGTH(ColumnB), 1) + 
    ISNULL(DATALENGTH(ColumnC), 1)
    ) AS SizeOfRow
FROM Data
    LEFT JOIN User ON Data.UserId = User.UserId 
ORDER BY SizeOfRow DESC

Когда я запускаю это, я получаю ошибку Conversion failed when converting from a character string to uniqueidentifier. Я не уверен, где я иду не так, как надо здесь. Если я удалю JOIN к User Затем таблица SQL работает без проблем. Тем не менее, я действительно хочу включить UserName поле, и я не уверен, почему его добавление вызывает проблемы.

РЕДАКТИРОВАТЬ: я должен упомянуть, что ColumnA это тип данных UniqueIdentifier, В то время как ColumnB а также ColumnC оба varchar(max),

0 ответов

Другие вопросы по тегам