相关疑难解决方法(0)

如何在SQL Server中创建是/否布尔字段?

从访问数据库转换或一般情况下,创建是/否布尔字段的最佳做法是什么?

sql-server boolean sqldatatypes

299
推荐指数
10
解决办法
73万
查看次数

如何在SQL中设置bool值

我有一个bool的专栏.我怎样才能设置真值假值?这是我的查询:

Update [mydb].[dbo].[myTable]
SET isTrue =
(
CASE WHEN Name = 'Jason' THEN 1
END
)
Run Code Online (Sandbox Code Playgroud)

我不知道在THEN关键字之后要写什么.我应该写1或者真的1个AS BIT还是其他什么?

sql sql-server

12
推荐指数
1
解决办法
3万
查看次数

SQL Server中三值逻辑的示例

我理解SQL使用三个有价值的逻辑,但我在理解如何在实践中使用它时遇到了麻烦,特别是为什么TRUE || NULL = TrueFALSE && NULL = False不是评估null.

以下是适用于SQL Server的三个值真值表:

三个真相表

我在网上找到了三个有价值逻辑的解释,但我找不到任何真正的代码示例.有人能告诉我一个使用三值逻辑的代码示例,以帮助我更好地理解这一点吗?

sql t-sql sql-server three-valued-logic

7
推荐指数
1
解决办法
5228
查看次数

python pandas:仅将数据帧的结构(无行)导出到 SQL

我正在使用 Pandas 0.16 和 sqlalchemy。是否可以仅将数据帧的结构(即列名和数据类型,而不是行)导出到 SQL?

我设法做到的最接近的是仅导出第一行:

df.ix[[0],:].to_sql( tablename, myconnection )
Run Code Online (Sandbox Code Playgroud)

然后我必须做一个截断表。但是,to_csv 和 to_sql 方法之间存在不一致:to_csv 将布尔字段写为字符串 'TRUE' 或 'FALSE' ,而 to_sql 将它们写为 0 或 1。这意味着导入使用 dataframe.to_csv 创建的文件更复杂比应该的。

如果我跑

df.ix[[],:].to_sql( tablename, myconnection )
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为所有列都导出为文本。

python sqlalchemy pandas

3
推荐指数
1
解决办法
2274
查看次数

如何在 SQL Server 中从多个布尔列中检查至少一个为真或所有列值都为假

表格格式:

+---------+---------+-----------------+
| column1 | column2 | column3| column4| 
+---------+---------+-----------------+
| value1  | true    | true   | false  |
| value2  | true    | false  | true   |
| value4  | false   | false  | false  |
+---------+---------+-----------------+
Run Code Online (Sandbox Code Playgroud)

第 1 到 4 列的数据类型为布尔值。

我想检查所有这些布尔列值是否为假或至少一个列值为真。

有没有更好的方法来使用 SQL Server 查询来做到这一点?预期输出:

+---------+---------+-----------------+
| column1 | column2 | column3| column4| 
+---------+---------+-----------------+
| value1  | true    | true   | false  | = true
| value2  | true    | false  | true   | = true
| …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2016

3
推荐指数
1
解决办法
5084
查看次数

T-SQL函数,当被调用时,表现为布尔表达式?

我正在尝试编写一个评估为布尔值的T-SQL函数.

我已经阅读了几篇文章,说明BIT是T-SQL等同于BOOLEAN类型(例如,在Microsoft SQL Server中是否存在类似于MySQL的布尔数据类型?,http://social.msdn.microsoft.com/论坛/ en-US/transactsql/thread/c3143a77-c921-40a7-920e-3d5c5f7a269a).

然而,当我创建返回BIT的函数时:

create function dbo.fn_checkLength( @name nvarchar(50), @maxLength int) returns bit
as begin

    if len(@name) > @maxLength return cast(0 as bit);

    return cast(1 as bit);
end;
GO
Run Code Online (Sandbox Code Playgroud)

它不像一个求值为布尔值的函数,因为以下语句:

create table dbo.test_table (
    id int,
    name nvarchar(50),

    constraint
        ck_test_table_maxLength
    check (
        dbo.fn_checkLength(name, 10)
    )
);
GO
Run Code Online (Sandbox Code Playgroud)

给我:

消息4145,级别15,状态1,行10
在预期条件的上下文中指定的非布尔类型的表达式,在')'附近.

为了使它工作,在调用我的函数时,我在混合中添加了一个布尔运算符,以真正使表达式为boolean:

create table dbo.test_table (
    id int,
    name nvarchar(50),

    constraint
        ck_test_table_maxLength
    check (
        dbo.fn_checkLength(name, 10) > 0
    )
);
GO
Run Code Online (Sandbox Code Playgroud)

为什么会这样?有没有办法声明可以在T-SQL语句中用作常规布尔表达式的函数?

谢谢!

t-sql sql-server boolean function bit

1
推荐指数
1
解决办法
5115
查看次数