查询oracle(sql)10g

时间:2010-12-13 12:55:37

标签: sql

我有一张这样的表

Name         Skills
mahesh       c,c++,java
santosh      Java
srikanth     c

在这里我需要知道c的人。我没有得到查询可以帮助我。或者我应该打破技能colums ...如果是的话那么我应该如何突破并实现我的查询...请你能给我留言......

2 个答案:

答案 0 :(得分:2)

将多个值存储在一个列中是一个坏主意,而不是有多个行或链接表。

多行显示为:

mahesh    c
mahesh    c++
mahesh    java
santosh   java
srikanth  c

对于链接表方法,您可能有三个表:Person,Skill和PersonSkill。像这样的东西:

Person
ID  Name
1   mahesh
2   santosh
3   scrikanth

Skill
ID  Description
1   C
2   C++
3   Java

PersonSkill
PersonID    SkillID
1           1
1           2
1           3
2           3
3           1

然后,您将查询具有C技能的人员,如下所示:

select Name 
from Person, Skill, PersonSkill
where Person.ID = PersonID and Skill.ID = SkillID and Skill.Description = 'C'

答案 1 :(得分:0)

只是因为mahesh没有设计数据库但只需查询它:

select Name 
from yourTable
where ',' || SKills || ',' like '%,c,%';