首页 > 解决方案 > 在源表中使用范围条件选择的 SQL 查询

问题描述

有一个场景可以从源表中存在范围条件的表中选择值。

像,

    TableA
    ID  value condition
    1   20      A-M
    2   50      N-Z

    Select value from TableA where condition = 'C%'

--want to select TableA value from TableB by passing person name starts with like,     

-- Here C is item name starts with 
-- Should compare with range (A-M) and return first row.
-- Condition column is varchar(3)

我在其他方式上看到了解决方案,可以将范围与输入值进行比较,但这里范围存在于源表中。请帮忙。

标签: sqlsql-servertsql

解决方案


如果我正确理解了您的需求,您可以使用

SELECT TOP 1 B.*
FROM TableB B
WHERE B.Name LIKE (SELECT CONCAT('[',condition,']%') FROM TableA WHERE ID =1)
ORDER BY B.Id

推荐阅读