gpt4 book ai didi

sql - 在 SQL Server 中是否有任何原因无法选择语句作为位?

转载 作者:行者123 更新时间:2023-12-02 22:32:22 25 4
gpt4 key购买 nike

我想知道为什么以下失败:

SELECT price<500 as PriceIsCheap

并强制您执行以下操作:

SELECT CASE WHEN (price<500) THEN 1 ELSE 0 END as PriceIsCheap

何时,as per the answer to this related questionconversion table表示应该发生隐式转换。

最佳答案

SQL中没有 bool 数据类型,BIT是一种 hack,但主要问题是由于 NULL 的 SQL 概念真boolean logic是不可能的(例如,如果 priceNULL,您的查询会返回什么?)

请注意,我并不是说没有可能方法来实现“大部分”工作的 bool 逻辑(例如,您可以说 TRUE OR NULLNULL 或其他)只是设计 SQL 标准的人无法决定 bool 逻辑的唯一真实表示(例如,您也可以认为 TRUE OR NULLTRUE ,因为 TRUE OR <anything>TRUE )。 p>

bool 表达式(=、<=、>= 等)仅在某些位置有效(特别是 WHERE 子句和 CASE 标签),而在任何其他位置无效。

关于sql - 在 SQL Server 中是否有任何原因无法选择语句作为位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3146647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com