2011-10-12 70 views
0

到目前爲止我的代碼是:顯示員工姓名誰擁有2L的,SQL查詢

select ename from emp where ename =ll%; 

的問題是,顯示誰擁有2LS在他們的名字,並在部門30或他們的經理所有僱員的所有名稱是7782;

我想我的代碼,但它給我的錯誤,我練我的測試。

+0

學習如何谷歌,如果你不打算在課堂上聽。 – Justin

+1

@Justin,有點苛刻的朋友。這是無法迎接新用戶的方式。即使他們的問題涉及*作業*。顯然他們確實嘗試了一些東西。幫助他們或轉移到下一個問題。旁註是不必要的。 –

+0

@Jason,理解你的pov,但我認爲只有rohit試過的東西是在這裏發佈問題。我全力幫助別人,但僅僅知道通配符是什麼,可能是他的考驗,在這種情況下,給他答案對他來說無助。 – Justin

回答

2

你想使用類似命令幷包夾你LL的W /%通配符:

select ename from emp where ename like '%ll%' 
+0

+1打我相同的答案。這裏是[鏈接](http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like)以獲取更多信息。 –

+0

@JasonMcCreary,你得到編輯他的問題的榮譽,雖然... – Rikon

1

你的意思是「兩L'就像你好」,或「兩L'就像拉拉」?如果第二個,這可能工作:

SELECT 
    ename FROM emp 
WHERE 
    ename LIKE '%l%l%' 
AND 
    (department = 30 AND manager = 7782) 

如果第一,改變LIKE%ll%代替。

如果departmentmanagerCHAR/VARCHAR而不是數字,則還需要單引號。

+0

+1爲順序'l'的徹底。儘管'%'是通配符(匹配任何內容或不匹配),所以不需要將'%l%l'更改爲'%ll%''。除了代碼純度當然。 :) –

+0

但第一個搜索結果會比兩個連續的'l'其他字符(如'lala'(不能拿出的作品一個字 - 也許有人詞彙量更是可以搜索的附和這裏)),其中第二個將需要兩個準確的'll'序列。 –

+0

我知道。我唯一的觀點是這兩個例子在'%l%l'匹配的情況下並不相互排斥。這意味着它匹配* hello *和* lala *。而'%ll%'只匹配* hello *。我們說的是同樣的事情,我只是從另一邊進來:) –

0
SELECT ename 
    FROM emp 
WHERE (ename LIKE '%l%l%' 
    OR ename LIKE '%ll%') 
    AND (department = 30 AND manager = 7782) ; 
0

SELECT ENAME FROM EMP
WHERE INSTR(ENAME, 'L',1,2)> 1和部門= 30和管理器7782 =

0
Select * from emp 
Where instr(ename, 'l', 2, 2)>1 and 
(Department=30 or manager=7782); 

在這裏,在INSTR函數我從第二個位置開始搜索以使其高效。否。出現的次數將是2,因爲他的查詢都是關於第二'l'的。

相關問題