2012-04-19 35 views
0

考慮下表:SELECT DISTINCT僅前四個數字

ticker code 
-------------- 
AA  151040 
AAP  452020 
DOW  151010 
DVN  151020 
EXC  452050 
FAD  452070 
POE  207010 

我想選擇每個代碼代號 - 但對比必須建立在只有前四個數字的代碼(這樣製成:1510 ,4520,1510等),給出如下結果:

1510 AA 
1510 DOW 
1510 DVN 
4520 AAP 
4520 EXC 
4520 FAD 
2070 POE 

什麼查詢可以只採取前四個數字?

+0

'DISTINCT'在哪裏發揮作用? – Travesty3 2012-04-19 20:31:02

+0

我低估了你,因爲我厭倦了閱讀這類問題。有什麼搜索?你有什麼嘗試?我從來沒有使用過MySQL,它讓我只需要一個查詢就可以找到要嘗試的東西。你不知道什麼是功能......我也不知道。但是尋找'mysql','string''function'給了我很多點擊... 不要拿它人格 – 2012-04-19 20:46:02

回答

2

使用LEFT

SELECT LEFT(code, 4) AS code, ticker FROM tbl ORDER BY code; 
1
SELECT SUBSTRING(code,1,5) AS SUB_CODE,ticker 
FROM TABLE; 
+0

['GROUP BY'](http://dev.mysql.com/doc/refman/ 5.0/en/group-by-functions.html)用於聚合函數。它不會爲這個查詢做任何事情。 – Travesty3 2012-04-19 20:30:31

+0

OOPS ..我的壞..現在改變它.. – Teja 2012-04-19 20:31:08

+0

@ Travesty3你可以使用GROUP BY而不是DISTINCT ... – 2012-04-19 20:49:43

1

您可以使用左功能在MySQL中,選擇前四個左(代碼4)然後使用order by。