在视图中使用CAST(1 AS BIT)`

问题描述 投票:0回答:1

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,没有详细信息。

mysql casting boolean bit stored-functions
1个回答
1
投票

[CAST()无法转换为BIT

您可以通过将整数作为条件来模拟行为。

基本上更改此:

CAST ( myval AS BIT )

收件人:

IF(myval, 1, 0)
© www.soinside.com 2019 - 2024. All rights reserved.