从两个字符串值中选择一个列表范围

时间:2016-04-06 09:52:31

标签: sql sql-server

我最近在sql中遇到了一个问题,

我有一个名为Plan的表,按照以下顺序看起来像......

 Distance Destination
 0         a
 1        null
 2        null
 3         b
 .        null
 .        null
 1050      c

我有两个值来自用户的输入,如a和b或b和c,我如何通过使用SQL获得此值范围

我所做的是选择a和b的距离,并通过距离&gt;重新选择所有列表。距离和距离< b.distance。 任何想法如何在一个SQL中更高效,更聪明地写这个?抱歉这个noob问题; 我的愿望结果就像你输入:b和c

返回一个列表

 0         b
 .        null
 .        null
 1047      c

1 个答案:

答案 0 :(得分:1)

使用with SQL语句

    WITH agreater AS (
        SELECT 
            * 
        FROM 
            Plan 
        WHERE 
            distance >= (select distance from Plan where destination = 'a')
    )
    SELECT 
        * 
    FROM 
        agreater
    WHERE 
        distance <= (select distance from agreater where destination = 'c')

您可以查看this answer以获取有关with

的更多信息