MS SQL Server视图不允许CONCAT

问题描述 投票:0回答:2

MS SQL Server 2014。

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

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

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

Operand data type int is invalid for concat operator

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

F1 = 123.00000
F2 = 456.00000

因此F3 = 123456

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

sql-server tsql view casting concat
2个回答
1
投票

不要使用视觉设计师。

它们是buggy,在这种情况下是转换

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

to

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

调用高度受限的ODBC escape sequence version of the function(仅接受两个必须为字符串的参数)

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


-1
投票

请使用如下的concat函数

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

© www.soinside.com 2019 - 2024. All rights reserved.