根据搜索文本选择最近的行

时间:2017-01-15 09:27:00

标签: sql sql-server tsql

请帮我在SQL server

中进行以下选择查询

源表

Name    
-------
A   
B   
F   
L   
Y

如果搜索键= A. 选择行a

如果搜索键= E(如果没有文本匹配则取最近的行) 选择行F

1 个答案:

答案 0 :(得分:3)

使用ASCII& ABS功能。

SELECT TOP 1 *
FROM   (VALUES ('A'),
               ('B'),
               ('F'),
               ('L'),
               ('Y')) tc (NAME)
ORDER  BY Abs(Ascii(NAME) - Ascii('E')) -- Pass the input here

结果: F

在表格中执行此操作

SELECT TOP 1 *
FROM   Yourtable
ORDER  BY Abs(Ascii(NAME) - Ascii('E')) -- Pass the input here