关于如何在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,我该如何执行上述两个查询?
答案 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))