MS SQL Server 视图不允许 CONCAT

Mic*_*ael 2 t-sql sql-server casting view concatenation

MS SQL Server 2014。

我有一个运行良好的 SQL 语句:

SELECT CONCAT (
        CAST(T1.[F1] AS INTEGER),
        CAST(T1.[F2] AS INTEGER)
        ) AS F3 
FROM mytable AS T1
Run Code Online (Sandbox Code Playgroud)

如果我然后将其放入视图中,并尝试运行,我会收到错误:

Operand data type int is invalid for concat operator
Run Code Online (Sandbox Code Playgroud)

F1 和 F2 都包含小数,但我希望它们连接,例如:

F1 = 123.00000
F2 = 456.00000
Run Code Online (Sandbox Code Playgroud)

所以F3 = 123456

为什么视图不允许这样做,有解决方案吗?

Mar*_*ith 6

不要使用视觉设计师。

它们有缺陷,在这种情况下会转换

    SELECT CONCAT (
        CAST(T1.[F1] AS INTEGER),
        CAST(T1.[F2] AS INTEGER)
        ) AS F3 
FROM mytable AS T1
Run Code Online (Sandbox Code Playgroud)

SELECT { fn CONCAT(CAST(T1.F1 AS INTEGER), CAST(T1.F2 AS INTEGER)) } AS F3
FROM     mytable AS T1
Run Code Online (Sandbox Code Playgroud)

调用该函数的高度受限的 ODBC 转义序列版本(仅接受两个必须是字符串的参数)

只需使用标准的新查询窗口来执行您的CREATE VIEW//操作,ALTER VIEWSELECT FROM就不会遇到此问题。