gpt4 book ai didi

sql - 检查 sql View 中的值是否为数字

转载 作者:行者123 更新时间:2023-12-01 18:51:21 27 4
gpt4 key购买 nike

下面我的案例陈述有什么问题?

如果该值是数字,那么我想检查它是否大于或等于 5,如果为 true,则返回 1,否则返回 0。有什么优雅的方法可以做到这一点吗?

下面的CASE嵌套在另一个CASE中

CASE
WHEN(
xyz <> a
AND abc <> 3
AND
CASE
WHEN ISNUMERIC(LEFT(o.RepCode, 1)) = 1 THEN
CASE
WHEN CONVERT(INT, LEFT(o.RepCode, 1)) >= 5 THEN 1
ELSE 0
END
ELSE 0
END
)
THEN 1
ELSE 0

在第二个案例之后和 WHEN ISNUMERIC() 之前的第一个案例中,我收到以下错误

An expression of non-boolean type specified in a context where a condition is expected.

最佳答案

最外面的 case 语句中缺少标准:

CASE
WHEN(
xyz <> a
AND abc <> 3
AND
CASE
WHEN ISNUMERIC(LEFT(o.RepCode, 1)) = 1 THEN
CASE
WHEN CONVERT(INT, LEFT(o.RepCode, 1)) >= 5 THEN 1
ELSE 0
END
ELSE 0
END = ? -- Missing criteria
)
THEN 1
ELSE 0

编辑:不确定是否有理想的格式,但我发现以下内容更容易遵循:

CASE WHEN (    xyz <> a      
AND abc <> 3
AND CASE WHEN ISNUMERIC(LEFT(o.RepCode, 1)) = 1
THEN CASE WHEN CONVERT(INT, LEFT(o.RepCode, 1)) >= 5
THEN 1
ELSE 0
END
ELSE 0
END = ? -- Missing Criteria
)
THEN 1
ELSE 0
END

关于sql - 检查 sql View 中的值是否为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25675345/

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