首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个不同的范围数之间

在两个不同的范围数之间
EN

Stack Overflow用户
提问于 2018-04-24 13:26:31
回答 3查看 54关注 0票数 0

我有一个存储过程,它有一个参数的表,参数有两列: From和To。都是int。它被用来搜索分数。表的示例是

代码语言:javascript
复制
+-----------+-------+----+
| RowNumber | From  | To |
+-----------+-------+----+
|         1 |     0 | 30 |
|         2 |    60 | 80 |
+-----------+-------+----+

如何在表格中搜索包含0到30、60和80之间所有分数的结果?

我曾经尝试过在while循环中使用between,但什么也没有。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-24 13:32:36

在没有回复的情况下,这只是猜测,不过,也许.

代码语言:javascript
复制
CREATE TABLE Score (ID int IDENTITY(1,1),
                    Score int);

INSERT INTO Score
VALUES (65),(17),(97),(14),(34),(79),(37),(87),(65),(63),(15),(75),(05),(25),(38),(28),(88);
GO

CREATE TABLE ScoreRange (ID int IDENTITY(1,1),
                         [From] int, --Try to avoid keywords, and especially reserved words, for column names
                         [To] int); --Try to avoid keywords, and especially reserved words, for column names
INSERT INTO ScoreRange
VALUES (0,30),
       (60,80);
GO
SELECT *
FROM Score S;

SELECT S.*
FROM Score S
     JOIN ScoreRange SR ON S.Score BETWEEN SR.[From] AND SR.[To];
GO

DROP TABLE Score;
DROP TABLE ScoreRange;
票数 1
EN

Stack Overflow用户

发布于 2018-04-24 13:31:31

如果没有样本数据,就很难回答--但我认为您正在寻找这样的东西:

代码语言:javascript
复制
SELECT t.*
FROM YourTable As t
JOIN @TVP As p ON t.Score >= p.[From] AND t.Score <= p.[To]
票数 1
EN

Stack Overflow用户

发布于 2018-04-24 14:02:47

代码语言:javascript
复制
select * from t
where exists (
    select 1 from ranges r
    where t.val between r.from and r.to
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50002886

复制
相关文章

相似问题

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