gpt4 book ai didi

sql - 连接到没有范围但需要范围的表

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

尝试找到编写此 SQL 语句的最佳方法。

我有一个客户表,其中包含该客户的内部信用评分。然后我有另一个表,其中包含该信用评分的定义。我想将这些表连接在一起,但第二个表没有任何方法可以轻松链接它。

客户的评分是1-999之间的整数,定义表有以下几列:

Score
Description

这些行:

60   LOW
99 MED
999 HIGH

所以基本上,如果客户的分数在 1 到 60 之间,那么他们的分数就低,61-99 的分数就高,100-999 的分数就高。

我无法真正 INNER JOIN 这些,因为只有当分数为 60、99 或 999 时它才会加入它们,并且这会排除具有这些分数的其他任何人。

我不想用静态数字做一个案例陈述,因为我们的分数将来可能会改变,并且我不想在他们改变时更新我的​​初始查询。我也无法创建任何表或函数来执行此操作 - 我需要创建一个 SQL 语句来为我执行此操作。

编辑:

一位同事说这可行,但有点疯狂。我认为必须有更好的方法:

SELECT 
internal_credit_score
(
SELECT
credit_score_short_desc
FROM
cf_internal_credit_score
WHERE
internal_credit_score = (
SELECT
max(credit.internal_credit_score)
FROM
cf_internal_credit_score credit
WHERE
cs.internal_credit_score <= credit.internal_credit_score
AND credit.internal_credit_score <= (
SELECT
min(credit2.internal_credit_score)
FROM
cf_internal_credit_score credit2
WHERE
cs.internal_credit_score <= credit2.internal_credit_score
)
)
)
FROM
customer_statements cs

最佳答案

尝试一下,更改表格以包含分数范围:

ScoreTable
-------------
LowScore int
HighScore int
ScoreDescription string

数据值

LowScore HighScore ScoreDescription 
-------- --------- ----------------
1 60 Low
61 99 Med
100 999 High

查询:

Select
.... , Score.ScoreDescription
FROM YourTable
INNER JOIN Score ON YourTable.Score>=Score.LowScore
AND YourTable.Score<=Score.HighScore
WHERE ...

关于sql - 连接到没有范围但需要范围的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6931805/

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