Строковое поле SQL Server усекается после 20 символов в результатах - PullRequest
1 голос
/ 09 июля 2019

Я пытаюсь выполнить простой SQL-запрос, но поле «Результат» усекается после 20 символов.

SELECT  dbo.EXT_Turni.idvuds, 
  CASE 
    WHEN dbo.EXT_Turni.tipo = 'ME3T' THEN ISNULL(dbo.EXT_servizi_tipo.serv_tipo_descr, dbo.EXT_Turni.tipologia) + ' Text Text Text.'
    ELSE ISNULL(dbo.EXT_servizi_tipo.serv_tipo_descr, dbo.EXT_Turni.tipologia) 
    END AS Result
FROM [...]
WHERE [...]

Я ожидаю, что «Результат» выведет «Тестовый текст Текст Текст Текст».вместо этого я получаю «Тестовый текст миссии».

1 Ответ

3 голосов
/ 09 июля 2019

isnull будет использовать тип данных первого аргумента в качестве результирующего типа данных.

Следовательно, первый столбец в вашей функции isnull будет выглядеть как varchar(20). Если вы конвертируете это в varchar(max), вы получите полный результат, например

ISNULL(convert(varchar(max),dbo.EXT_servizi_tipo.serv_tipo_descr), dbo.EXT_Turni.tipologia)

Официальный справочник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...