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)
关于mysql - 在 View 中使用`CAST(1 AS BIT)`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58593327/