MS SQL 服务器视图不允许 CONCAT
MS SQL Server View not allowing CONCAT
MS SQL 服务器 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
为什么视图不允许这样做,有解决方案吗?
请像下面这样使用concat函数
SELECT {fn CONCAT('123', '456') }
不要使用视觉设计器。
它们是 buggy 在这种情况下转换
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
调用高度受限的ODBC escape sequence version of the function(只接受两个必须是字符串的参数)
只需使用标准的新查询 window 来执行您的 CREATE VIEW
/ALTER VIEW
/SELECT FROM
操作,您就不会遇到这个问题。
MS SQL 服务器 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
为什么视图不允许这样做,有解决方案吗?
请像下面这样使用concat函数
SELECT {fn CONCAT('123', '456') }
不要使用视觉设计器。
它们是 buggy 在这种情况下转换
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
调用高度受限的ODBC escape sequence version of the function(只接受两个必须是字符串的参数)
只需使用标准的新查询 window 来执行您的 CREATE VIEW
/ALTER VIEW
/SELECT FROM
操作,您就不会遇到这个问题。