请帮我在SQL server
中进行以下选择查询源表
Name
-------
A
B
F
L
Y
如果搜索键= A. 选择行a
如果搜索键= E(如果没有文本匹配则取最近的行) 选择行F
答案 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