MySQL noob,来自多年的MS SQL Server经验。我正在创建带有BIT
列的视图,我知道这是布尔值/是-否列的正确类型。
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)