SQL如何查询表中某一列中的数据的前几位

如:
table1
2012001
2012002
2012003
2011001
2011002
SQL语句查询后
结果 :
table1
2012
2011

第1个回答  2012-12-11
问一下你这个是char型的数据么
SQL当中
substring('2012001',1,4)得到的会是2012,后面两个参数看得懂吧,1,起始位置,4截取位数
如果你的2012001是date型的,或者int型其他类型,先强转成char型的,在用上面的substring截取追问

我只是用那数字举个例子其实是char类型的数字前边还有字母呢
SQL查询语句中也可以用substring吗?应该怎么写?
这样对吗??select distinct left (table1,4) from列名

追答

select substring(cast(table1 as varchar(20)),1,4) from 表名 你的table1是列名吧,我给你写的这个table1是列名,我不管你类型,先强转了。肯定我这个是可以的,我在SQL试过了刚

第2个回答  推荐于2017-09-18

    用order 倒叙字段

    select * from user where 1=1 order by age desc

    这个是在用户表中,用年龄倒序的

    去3行数据 mysql的 select * from user where 1=1 order by age desc limit 3

    去3行数据 oracle的 select * from user where 1=1 order by age desc rownum 3

第3个回答  2012-12-11
select left(字段名,4) from 表追问

这个不用distinct吗?

追答

不加distinct有重复值,加distinct没有重复值。

本回答被提问者采纳
第4个回答  2012-12-11
这个太简单,留给楼下解答
第5个回答  2012-12-11
查一下函数
相似回答