在两个字符串值之间搜索

时间:2014-07-23 01:06:11

标签: sql

关于如何在SQL中比较String的问题:https://stackoverflow.com/a/515051/409976,假设我有以下数据,其中START和END是String的。

ID START  END
1   1      5
2   A      C

我执行了一个查询,在这些START和END值“之间”搜索失败:

select * from TABLE where start <= '2' and '2' <= end -- 0 results

select * from TABLE where start <= 'B' and end >= 'B' -- 0 results

由于我正在搜索字母数字,即我不能只转换为Int / Number,我该如何执行上述两个查询?

1 个答案:

答案 0 :(得分:0)

您可以使用ASCII()来获取代码值。只要您的角色在预期范围内等,它就会起作用。

SELECT * FROM table WHERE ASCII(start) <= ASCII('2') and ASCII('2') <= ASCII(end)

SELECT * FROM table WHERE ASCII(UPPER(start)) <= ASCII('B') AND ASCII('B') <= ASCII(UPPER(end))