Che*_*uis 18 sql database postgresql search
我想在字符串列上使用"between"子句进行搜索.做一些测试我得到了这个:
假设有一个国家表格,其中包含varchar类型的"名称"列.如果我执行此查询:
Select * from country where name between 'a' and 'b'
Run Code Online (Sandbox Code Playgroud)
我得到了这个结果:
Argentina
.
.
.
Argelia.
Run Code Online (Sandbox Code Playgroud)
它排除那些以B开头的国家,我发现它有点奇怪.
有没有办法以更准确的方式进行搜索?进行此搜索的其他任何想法?
提前致谢
Jay*_*Jay 37
表达方式
name between 'A' and 'B'
Run Code Online (Sandbox Code Playgroud)
相当于
name>='A' and name<='B'
Run Code Online (Sandbox Code Playgroud)
所以'阿根廷'是> ='A'和<='B',它满足条件.但'玻利维亚'不是<='B'.'玻利维亚'> 'B'.它不只是看第一个字母:它查看整个字符串.这肯定是应该的方式:如果它不这样做,就没有办法说你想要一个包括'史密斯'而不是'史密瑟斯'的范围.
为了实现你想要的,你可以说:
substr(name,1,1) between 'A' and 'B'
Run Code Online (Sandbox Code Playgroud)
要么:
name like 'A%' or name like 'B%'
Run Code Online (Sandbox Code Playgroud)
要么:
name>='A' and name<'C'
Run Code Online (Sandbox Code Playgroud)