2012-04-19 41 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。