2012-06-08 3 views
0

Можно создать дубликат:
Is there a combination of “LIKE” and “IN” in SQL?, как использовать, как и в запросе

мы можем использовать, как и в состоянии в одном запросе, как этот

select inticap(last_name),length(last_name) from employees 
    where last_name in(like '%J%',like '%A%',like '%M%'); 

OR 

    select inticap(last_name),length(last_name) from employees 
where last_name like in('%J%', '%A%',l'%M%'); 

я это знаю не работает. здесь я хочу отобразить начальную букву капитала фамилии и длину фамилии, и я хочу отобразить имя с алфавитами «A», «J» и «M». пожалуйста, помогите мне

+0

дубликат http://stackoverflow.com/questions/4335359/is-it-possible-to-use-like-and-in-for-a-where-statment и http://stackoverflow.com/questions/10747996/in-sql-server-how-do-i-search-for-multiple-values-in-a-column-where-i-need-to-u/10748091 # 10748091 и многие другие –

+0

Нет, t work, вы можете использовать OR в запросе типа last_name, например «% J%» или «% A%» – shobhit

+0

Это невозможно. –

ответ

3

Как уже упоминалось, вы не можете напрямую объединить LIKE и IN как вы предпочли бы.

Вот один запутано вариант:

SELECT INITCAP(last_name) 
,  LENGTH(last_name) 
FROM employees 
WHERE +1 IN (SIGN(INSTR(last_name,'J')) 
      , SIGN(INSTR(last_name,'A')) 
      , SIGN(INSTR(last_name,'M'))) 

Или, если вы по крайней мере, 10 г, вы можете использовать регулярные выражения:

SELECT INITCAP(last_name) 
,  LENGTH(last_name) 
FROM employees 
WHERE REGEXP_LIKE(last_name,'(J|A|M)') 

... но регулярные выражения в целом более ЦП-интенсивнее, чем ваши SQL-функции.

3
select inticap(last_name),length(last_name) from employees 
where last_name like '%J%' OR last_name like '%A%' OR last_name '%M%'; 
+0

привет, я знаю, что это сработает, но я хочу написать запрос с и как –

+0

U может посмотреть - http://stackoverflow.com/questions/3350106/how-to-use-like-clause-with-in-caluse- in-sql-server –

+1

Что касается ссылки в предыдущем комментарии: вместо создания таблицы вы также можете использовать функцию с концами и добавить свои «похожие» условия программно в таблицу PL/SQL. – Dzik

Смежные вопросы