2012-03-30 87 views
2

如何查询名字以'N'开头并且姓氏以'K'开头的表格而不使用like通过字符串匹配查询表而不使用LIKE?

+0

为什么你不想使用'like'?它是唯一不会混淆它对未来代码维护者意义的解决方案。 – 2012-03-31 10:47:49

+0

@Rob,“like”是一种非常常见的语义,但称它为唯一的语义可能是一个很大的桥梁。子字符串和下面的N&O答案之间是完全可读和可维护的。 – EBarr 2012-03-31 12:28:30

回答

1

regular Expression怎么样?

select * from table1 where regexp_like (firstName, '^N*'); 
select * from table1 where regexp_like (lastName, '^K*'); 
+0

@JeffreyKemp,谢谢你,编辑我的答案 – Habib 2012-03-31 06:06:03

1

你也许会>尝试<运营商

如:

其中name> = 'N' AND NAME < 'O'

,但我不保证你您期望的每一个字母(尤其是对于加重的字符,如果有的话)

缩尺

2

尝试类似如下:

SELECT * FROM mytable 
WHERE SUBSTR(firstName, 1, 1) = 'N' 
AND SUBSTR(lastName, 1, 1) = 'K';