我最近在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
答案 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