选择sql的查询

时间:2016-12-01 12:22:14

标签: sql oracle

表格描述

表名: - 名称条件

姓名|图案

 A  |   %A% or Name like %a%

 B  |   %B% or Name like %b%

 C  |   %C% or Name like %c%

 D  |   %D% or Name like %d%

 E  |   %E% or Name like %e%

 F  |   %F% or Name like %f%

 G  |   %G% or Name like %g%

表名: - 员工

Emp_ID | EMP_NAME

1   |   Akshay

2   |   Akhil

3   |   Gautam

4   |   Esha

5   |   bhavish

6   |   Chetan

7   |   Arun

[表格说明] [1]:https://i.stack.imgur.com/wvOgr.png

以上是我的两张桌子现在我的查询是(在图片中)

从员工中选择*,Name_condition,其中EMP_NAME喜欢模式

这里查询在语法上是正确的但产生错误的输出。

它将列Pattern作为字符串并在EMP_NAME中搜索它,它将一无所获。

所以我的问题是我们如何将Pattern列中的值作为条件而不是字符串,以便查询将变为这样
从员工中选择*,在姓名条件中选择EMP_NAME,例如'%A%'或名称如'%a%'   
我需要的是当我将colunm名称(模式)传递到where条件%A%或名称如%a%整体作为一个字符串,但我想要从员工中选择*,Name_condition,其中EMP_NAME喜欢Pattern
这里列名称模式必须替换为列中的值和查询产生这样的o / p 从员工中选择*,在姓名条件中选择EMP_NAME,例如'%A%'或名称如'%a%'

期望的结果: - 我希望我的结果中的所有行包括 bhavish 但是我们看到我们在列本身中有类似条件,如%B%或名称如%b%
我想要的是它匹配时
EMP_NAME喜欢Pattern
模式的价值必须在内部取代
%B%或名称如%b%
它产生的输出包括 bhavish ,以 b

开头

4 个答案:

答案 0 :(得分:0)

尝试:

select * 
from employees 
where  emp_name like '%oh%'
  or   emp_name like '%a%';
祝你好运。

答案 1 :(得分:0)

orafaq

尝试此操作
SELECT * FROM employees 
WHERE emp_name LIKE '\%a\%' ESCAPE '\';

答案 2 :(得分:0)

它不是那么简单(它不应该)。如果你真的必须使用这样的表,你必须编写一个PL / SQL来处理你的条件。 你必须阅读两件事:

答案 3 :(得分:-2)

尝试放置&&在条件

中代替'和'