在视图中使用 `CAST ( 1 AS BIT )`
Using `CAST ( 1 AS BIT )` within a view
MySQL 菜鸟,来自多年的 MS SQL-服务器经验。
我正在创建一个带有 BIT
列的视图,据我所知这是 boolean/yes-no 列的正确类型。
BIT
值是使用简单的内联 IF
语句计算的。
CREATE VIEW view2 AS
SELECT
t.column2 ,
IF ( t.column2 IS NULL ,
CAST ( 1 AS BIT ) ,
CAST ( 0 AS BIT ) ) AS isColumn2Null
FROM table2 t ;
但是当我尝试执行此操作时,出现错误:
Incorrect parameters in the call to stored function `CAST`
为什么 MySQL 在这里给出存储函数错误?
MySQL 认为我在定义存储函数吗?
怎么回事?
显然 MySQL 中的 BIT
类型与 SQL-Server 的工作方式不同。
我试过 CAST ( 1 AS BIT ( 1 ) )
但那只是给出了一个没有细节的通用 syntax error
。
CAST()
无法转换为 BIT
.
您可以通过将整数视为条件来模拟该行为。
基本上改变这个:
CAST ( myval AS BIT )
收件人:
IF(myval, 1, 0)
MySQL 菜鸟,来自多年的 MS SQL-服务器经验。
我正在创建一个带有 BIT
列的视图,据我所知这是 boolean/yes-no 列的正确类型。
BIT
值是使用简单的内联 IF
语句计算的。
CREATE VIEW view2 AS
SELECT
t.column2 ,
IF ( t.column2 IS NULL ,
CAST ( 1 AS BIT ) ,
CAST ( 0 AS BIT ) ) AS isColumn2Null
FROM table2 t ;
但是当我尝试执行此操作时,出现错误:
Incorrect parameters in the call to stored function `CAST`
为什么 MySQL 在这里给出存储函数错误?
MySQL 认为我在定义存储函数吗?
怎么回事?
显然 MySQL 中的 BIT
类型与 SQL-Server 的工作方式不同。
我试过 CAST ( 1 AS BIT ( 1 ) )
但那只是给出了一个没有细节的通用 syntax error
。
CAST()
无法转换为 BIT
.
您可以通过将整数视为条件来模拟该行为。
基本上改变这个:
CAST ( myval AS BIT )
收件人:
IF(myval, 1, 0)