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/

10-11 22:37
查看更多