SQL странная ошибка: ошибка преобразования значения - PullRequest
1 голос
/ 18 марта 2011

Когда я делаю

SELECT RecTime, CAST(ID as nvarchar(MAX)) AS Col, InitialValue FROM [dbo].[Changes] 

У меня нет ошибок

Когда я делаю

SELECT RecTime, Col, InitialValue FROM [dbo].[XDeltaIntervals]

У меня нет ошибок

Но когда я делаю

SELECT RecTime, CAST(ID as nvarchar(MAX)) AS Col, InitialValue 
FROM [dbo].[Changes]
        UNION ALL
   SELECT RecTime, Col, InitialValue FROM [dbo].[XDeltaIntervals]

Col от XDeltaIntervals - это nvarchar (MAX)

У меня есть сообщение об ошибке:

Сообщение 245, Уровень 16, Состояние 1, Строка 2 Ошибка преобразования значения nvarchar "davl> 40" для бита типа данных. Внимание! NULL исключен в агрегат или другие операции SET.

davl> 40 - это Col из XDeltaIntervals, и это nvarchar, и я не могу понять, где я пытаюсь преобразовать его в бит: S

Как можно избежать этого запроса на преобразование Col из второй части объединения в бит?

Ответы [ 3 ]

1 голос
/ 18 марта 2011

Attention! NULL is excluded in the aggregate, or other operations SET. не имеет никакой связи с запросом, который вы показали.Являются ли какие-либо из этих видов?

Если это так, попробуйте EXEC sp_refreshview 'dbo.XDeltaIntervals'

1 голос
/ 18 марта 2011

Похоже, что символ> в фактическом имени столбца для "col" интерпретируется как оператор.Что если вы заключите имя столбца в скобки [].

1 голос
/ 18 марта 2011

Вы пытались изменить порядок действий СОЮЗА?

SELECT RecTime, Col, InitialValue
FROM [dbo].[XDeltaIntervals] 
UNION ALL
SELECT RecTime, CAST(ID as nvarchar(MAX)) AS Col, InitialValue
FROM [dbo].[Changes]

Типы данных результирующего набора основаны на значениях из первого оператора SELECT.

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