MS SQL Server View не разрешает CONCAT - PullRequest
0 голосов
/ 03 марта 2020

MS SQL Server 2014.

У меня есть оператор SQL, который отлично работает:

SELECT CONCAT (
        CAST(T1.[F1] AS INTEGER),
        CAST(T1.[F2] AS INTEGER)
        ) AS F3 
FROM mytable AS T1

Если я затем добавлю это в представление и попытаюсь запустить I получить сообщение об ошибке:

Operand data type int is invalid for concat operator

F1 и F2 содержат десятичные дроби, но я хочу, чтобы они объединялись, например:

F1 = 123.00000
F2 = 456.00000

Следовательно F3 = 123456

Почему представление не отображается разрешить это и есть ли решение?

Ответы [ 2 ]

2 голосов
/ 03 марта 2020

Не используйте визуальные дизайнеры.

Они глючат и в этом случае преобразуют

    SELECT CONCAT (
        CAST(T1.[F1] AS INTEGER),
        CAST(T1.[F2] AS INTEGER)
        ) AS F3 
FROM mytable AS T1

в

SELECT { fn CONCAT(CAST(T1.F1 AS INTEGER), CAST(T1.F2 AS INTEGER)) } AS F3
FROM     mytable AS T1

Вызов крайне ограниченного ODB C escape-версия версии функции (которая принимает только два параметра, которые должны быть строками)

Просто используйте стандартное новое окно запроса для выполнения операций CREATE VIEW / ALTER VIEW / SELECT FROM, и вы не получит эту проблему.

0 голосов
/ 03 марта 2020

Пожалуйста, используйте функцию concat, как показано ниже

SELECT {fn CONCAT ('123', '456')}

...