首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择返回null

问选择返回null
EN

Stack Overflow用户
提问于 2021-11-12 18:03:42
回答 1查看 63关注 0票数 2
代码语言:javascript
复制
SELECT
    r.[value] as KnownRandomNumber,
    CHOOSE(r.[value], 5, 15, 16, 17) AS KnownRandomResult,
    CHOOSE(FLOOR(RAND() * 4) + 1, 5, 15, 16, 17) AS UnknownRandomResult
FROM
    (SELECT FLOOR(RAND() * 4) + 1 AS [value]) r

为什么CHOOSE(FLOOR(RAND() * 4) + 1, 5, 15, 16, 17)有时会返回null?即使使用从子查询中获得的随机数也不会返回null?

我在SQL Server Management Studio中的Microsoft SQL Server上运行它。

​

​

EN

回答 1

Stack Overflow用户

发布于 2021-11-12 18:17:35

我想你不在索引里了。如果不是这样,您就会发现每次执行相同的查询时,RAND()都返回相同的值。问题出在这里的逻辑,而不是函数'CHOOSE‘

测试并使用它,查看每个字段的值以及它的工作原理:

代码语言:javascript
复制
SELECT
    CHOOSE(FLOOR(RAND() * 4) + 1, 5, 15, 16, 17,'OUT') AS UnknownRandomResult,
    RAND() * 4 as Rand4,
    FLOOR(RAND() * 4)  as Floor4,
    FLOOR(RAND() * 4) + 1 as Floor4Plus1,
        RAND() * 4 as Rand4_2,
    FLOOR(RAND() * 4)  as Floor4_2,
    FLOOR(RAND() * 4) + 1 as Floor4Plus1_2

更多信息请阅读:https://docs.microsoft.com/en-us/sql/t-sql/functions/logical-functions-choose-transact-sql?view=sql-server-ver15

更新:

我建议使用一些如果为空默认值来修复该空值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69947263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档