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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL如何查询表中某一列中的数据的前几位相关的知识,希望对你有一定的参考价值。

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

参考技术A 问一下你这个是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试过了刚

参考技术B

    用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

参考技术C select left(字段名,4) from 表追问

这个不用distinct吗?

追答

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

本回答被提问者采纳
参考技术D 这个太简单,留给楼下解答 第5个回答  2012-12-11 查一下函数

sql语句查询一个表中某一列的相同数据

1、找出这列中有相同内容的列的数据。代码如下:

select 列名 from 表名 group by 列名 having count(列名) > 1

2、把这些有相同内容的记录,查出来。代码如下:

select 列名 from 表名 where 列名 in (select 列名 from 表名 group by 列名 having count(列名) > 1)

以上是关于SQL如何查询表中某一列中的数据的前几位的主要内容,如果未能解决你的问题,请参考以下文章

sql查询中有一列中有NULL的数据,如何判断不为空的时候才进行操作?

SQL实用技巧:如何将表中某一列的部分数据合并到一行中

sql语句批量修改mysql单表中某一列中的数据

sql语句批量修改mysql单表中某一列中的数据

SQL数据库中如何将表中某一列部分负数改为正数

求代码,Linux系统如何输出文件中某一列数据第一个峰值对应的其他列中的数据