从同一表的行中选择值和下一个最高值

BlueChippy

我有这样的桌子

LowerPoints MessageTemplate
0           zero
10          ten
100         hundred

我想从中选择,所以我有一个列表,lowerPoints然后是LowerPoints

例如

select
    low.LowerPoints As LowerPoints
    , high.LowerPoints as UpperPoints
    , low.MessageTemplate as MessageTemplate
from MessageTemplate low
    , MessageTemplate high
where high.LowerPoints = (select top 1 LowerPoints from MessageTemplate where LowerPoints > low.LowerPoints order by LowerPoints)

哪个返回

LowerPoints UpperPoints MessageTemplate
0           10          zero
10          100         ten

但我看不到如何获取第三个值并将其赋予“空”值UpperPoints即最后一行是

100                     hundred
布米

您使用过时的语法(用逗号分隔表)的使用将被视为INNER JOIN。您可以将其编写为:

select
    low.LowerPoints As LowerPoints
    , high.LowerPoints as UpperPoints
    , low.MessageTemplate as MessageTemplate
from MessageTemplate low
LEFT JOIN MessageTemplate high
ON high.LowerPoints = (select top 1 LowerPoints from MessageTemplate where LowerPoints > low.LowerPoints order by LowerPoints)

您也可以使用简单的子选择

Declare @a Table (LowerPoints int, MessageTemplate varchar(30))
insert into @a Values(0,'zero'),(10,'ten'),(100,'hundred')

Select a.LowerPoints
     ,(Select top 1 LowerPoints from @a b 
       where b.LowerPoints>a.LowerPoints
       order by b.LowerPoints) as UpperPoints
     ,a.MessageTemplate
from @a a
Order by LowerPoints

或CTE在条件b.rn = a.rn + 1的情况下使用其自身的LEFT JOIN生成定义的行号(rn)

;With CTE as
(
Select LowerPoints,MessageTemplate
       ,ROW_NUMBER() OVER (ORDER by LowerPoints) as rn
from @a a
)
Select c1.LowerPoints
      ,c2.LowerPoints as UpperPoints
      ,c1.MessageTemplate 
from CTE c1
LEFT JOIN CTE c2 on c2.rn=c1.rn +1 
Order by c1.LowerPoints

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从同一表的行中选择值和下一个最高值

来自分类Dev

从与同一表中的另一个值匹配的行中选择一个值

来自分类Dev

从SQL表中选择一个表的最高值

来自分类Dev

从表格中选择最大值(日期)和下一个最高的最大值(日期)

来自分类Dev

如何联接同一表的下一个日期值

来自分类Dev

如何在Django查询中找到下一个最高值

来自分类Dev

使用php在数据库中插入下一个最高值

来自分类Dev

从一个哈希元素具有最高值的数组中选择单个哈希

来自分类Dev

从同一表中选择多个值

来自分类Dev

SQL:从表中选择一行,并在其中包含包含该列的下一个值的其他列

来自分类Dev

SQL:从表中选择一行,并在其中包含包含该列的下一个值的其他列

来自分类Dev

得到接合三个表聚集的平均值和下一个显示它们在第一表中的每个值

来自分类Dev

SQL Server - 如何从不同的行但在同一个表中选择值

来自分类Dev

得到接合的第二表聚集的平均值和下一个显示它们在第一表中的每个值

来自分类Dev

获取下一个并扫描同一表中的记录

来自分类Dev

Netezza从下一个记录中选择值

来自分类Dev

选择下一个唯一值

来自分类Dev

确定更大的下一个值,然后乘以同一行的D列

来自分类Dev

复制行并在同一表中插入一个不同值的MySQL字段

来自分类Dev

查找下一个较小和下一个较大的值

来自分类Dev

jQuery选择下一个表行的UNIQUE

来自分类Dev

选择下一个值firebase android

来自分类Dev

jQuery选择下一个文本输入值

来自分类Dev

如何创建具有特定行值+同一行上的下一个值的数据框?

来自分类Dev

SQLite 查询以选择匹配的行和 2 个具有最高 ID 的下一个

来自分类Dev

在 jQuery 中选择下一个“选择”项

来自分类Dev

如何在一行中选择此元素和下一个元素的子元素?

来自分类Dev

从下一个表CTE获取每个值的下一个值

来自分类Dev

从一个列中连接多个值,该列从另一表中选择

Related 相关文章

  1. 1

    从同一表的行中选择值和下一个最高值

  2. 2

    从与同一表中的另一个值匹配的行中选择一个值

  3. 3

    从SQL表中选择一个表的最高值

  4. 4

    从表格中选择最大值(日期)和下一个最高的最大值(日期)

  5. 5

    如何联接同一表的下一个日期值

  6. 6

    如何在Django查询中找到下一个最高值

  7. 7

    使用php在数据库中插入下一个最高值

  8. 8

    从一个哈希元素具有最高值的数组中选择单个哈希

  9. 9

    从同一表中选择多个值

  10. 10

    SQL:从表中选择一行,并在其中包含包含该列的下一个值的其他列

  11. 11

    SQL:从表中选择一行,并在其中包含包含该列的下一个值的其他列

  12. 12

    得到接合三个表聚集的平均值和下一个显示它们在第一表中的每个值

  13. 13

    SQL Server - 如何从不同的行但在同一个表中选择值

  14. 14

    得到接合的第二表聚集的平均值和下一个显示它们在第一表中的每个值

  15. 15

    获取下一个并扫描同一表中的记录

  16. 16

    Netezza从下一个记录中选择值

  17. 17

    选择下一个唯一值

  18. 18

    确定更大的下一个值,然后乘以同一行的D列

  19. 19

    复制行并在同一表中插入一个不同值的MySQL字段

  20. 20

    查找下一个较小和下一个较大的值

  21. 21

    jQuery选择下一个表行的UNIQUE

  22. 22

    选择下一个值firebase android

  23. 23

    jQuery选择下一个文本输入值

  24. 24

    如何创建具有特定行值+同一行上的下一个值的数据框?

  25. 25

    SQLite 查询以选择匹配的行和 2 个具有最高 ID 的下一个

  26. 26

    在 jQuery 中选择下一个“选择”项

  27. 27

    如何在一行中选择此元素和下一个元素的子元素?

  28. 28

    从下一个表CTE获取每个值的下一个值

  29. 29

    从一个列中连接多个值,该列从另一表中选择

热门标签

归档