posts - 60,comments - 71,trackbacks - 0

    在进行模糊查询时,一般使用的形式是 like 'key%',like '%key',like '%key%' 等几种形式,其中key一般是固定的值,这样从数据库表中查出所需的数据,但最近做的一个任务中有这样的一需求,即key是变化的,根据不同的条件获取不同的key值做为like中的条件,来获取所需的数据,想了一下,需要用到oracle中的字符串连接符:|| ,如下:

SELECT  ue.*  FROM user ue WHERE  name LIKE '' || ( SELECT username FROM student st WHERE st.stud_id='1003'|| '%' 

    user是一张记录所有用户名等其他比较全的数据,然后根据学生ID查询学生姓名,因为可能会有姓名相同的学生,所以用此方法可以查询出user表中所有姓名相似(如有王小和王小华,王小兵三个学生,而ID为1003的学生为王小,则这条语句就可以查出这三个人的相关数据).
当然这里只是举的一个简单例子,我相信实际的生产应用中是存在这样的需求的,这里重要是介绍这种SQL语句的写法,却确的说是关于like的写法,即用oracle的连接符来完成.
    即:前面两个引号的作用是生成一个引号,||是字符串连接符,用来连接SELECT username FROM student st WHERE st.stud_id=1003' 语句查询得到的字符串,后面的||是用来连接%的,最后得到的语句大至如:
like 'aaa%' 的形式.即实现key关键字动态变化的模糊查询.
posted on 2008-05-31 17:18 henry1451 阅读(3914) 评论(0)  编辑  收藏 所属分类: Oracle技术

只有注册用户登录后才能发表评论。


网站导航: