昨天在写入SQLServer数据库的时候有一张表把所有的数据字段都写成了VARCHAR类型了,这样的好处就是很简单,出错概率小,麻烦就是如果我要依据一个字段:比如说人的年龄排序的时候就会出错,这里默认都是字符类型的对象,所以就会出现下面的情况:

76
69
51
43
42
36
35
100

这应该是一种字典序的结果,当然不满足我们这里实际场景的需求了,于是就需要在排序前进行处理,先把需要排序的字段转化为数值型对象再进行排序,这样就不会出现上面的问题了。

下面是具体的实践(适用于SQLServer):

  SELECT * FROM MYDATA WHERE NAME='Jack' ORDER BY CONVERT(FLAOT,money) DESC--先将money字段转化为float类型后再进行降序排序SELECT * FROM MYDATA WHERE NAME='Jack' ORDER BY CONVERT(INT,age) DESC--先将age字段转化为int类型后再进行降序排序

下面是适用于 SQLServer Oracle的语句:

SELECT * FROM MYDATA ORDER BY CAST(age AS INT) DESC
--先将age字段转化为int类型后再进行降序排序SELECT * FROM MYDATA ORDER BY CAST(money AS FLOAT) DESC
--先将money字段转化为float类型后再进行降序排序

上面的仅仅是比较简单的情况,如果说一个字段是由数值和字符拼接在一起形成的那么处理起来就会相对复杂一点,因为不能对两种对象一起转化为int或者是float对象,这时候就需要用到SQLServer里面的字符串截取函数了,这个相关的函数介绍在我之前的博客里面已经详细介绍过了,这里简单举例实现说明:

SELECT * FROM MYDATA ORDER BY CONVERT(INT, LEFT(ATTRIBUTE2,LEN([ATTRIBUTE1]))) ASC, RIGHT(ATTRIBUTE3, 1) DESC
--取字段ATTRIBUTE2从左开始的字段ATTRIBUTE1的长度个数量的数值转化为int对象进行升序排序,同时
--取字段ATTRIBUTE3从右边开始的一位进行降序排序SELECT * FROM MYDATA ORDER BY SUBSTRING(ATTRIBUTE5,1,5) DESC
--取字段ATTRIBUTE5的从左边第一位开始5位长度的对象进行降序排序

实践之后,越发感慨数据库的强大,学习了!

SQLServer实现将VARCHAR字符型对象转化为int/float数值型对象后排序、对VARCHAR对象截取指定部分再转化为数值对象进行排序相关推荐

  1. 《JAVA练习题目8》 编写一个类Person,包含的属性和方法如下: 属性:字符串类型的名字name,字符类型的性别gender,和整型的序号number

    题目内容: 编写一个类Person,包含的属性和方法如下: 属性:字符串类型的名字name,字符类型的性别gender,和整型的序号number:方法:showMe,以"name-gende ...

  2. r语言转化为python_数值型与字符型转换总结|R语言

    在日常碰到问题时出现当前"数据类型不能进行操作"的提示时还是有些脑壳疼,所以这次整理了针对R数据类型转换的总结.理论部分主要是R for Data Science的向量节选翻译.& ...

  3. 前端:JS/17/前篇总结(JS程序的基本语法,变量),数据类型-变量的类型(数值型,字符型,布尔型,未定义型,空型),数据类型转换,typeof()判断数据类型,从字符串提取整数或浮点数的函数

    JS程序的基本语法 1,JS是区分大小写的,如:Name和name是不同的: 2,JS中每一条语句,一般以英文的分号(;)结束,在Java中是严格地一定要加上分号,不然会报错:但在JavaScript ...

  4. mysql列的数值型,字符型,日期型

    1.数值型 1).整数型tinyint(M) (1字节) 范围-128~127 , 0~255smallint (2字节)medinumint (3字节)int (4字节)bigint (8字节)un ...

  5. Java中的基本数据类型讲解(数值型、字符型、布尔型)

    数据类型 数据类型的分类 分为 基本数据类型和引用数据类型 基本数据类型 基本数据类型分为数值型.字符型和布尔类型 数值型 数值型分为整数型和浮点型(小数型) 整数型 包含:int. short. b ...

  6. Mysql:max函数参数为字符类型需要通过CAST函数转换为数值型

    数据库中的经常会用到要过滤某个列的最值数据,比如,取数量最大的值,取时间最早的值等等,下面我们就来看看如何运用这个最值函数,特别注意,max函数或者min函数,参数都支持字符类型,这里就会有些坑存在, ...

  7. SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型

    简要描述一下SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 字符型 VARCHAR VS CHAR VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要.他们都是用来储存字 ...

  8. java 如何将数值型字符转换为数字_Java 如何将字符串转换为数字 专家详解

    在编程中我们经常需要进行各种数据类型之间的转换操作,下面将为您介绍如何将字符串转换为数字.首先我们需要了解各种数据类型的表示,String在java中为字符串类型,int在java中为整数类型,大小在 ...

  9. R语言将字符型(Character)变量转化为数值型(Numeric)

    R语言将字符型(Character)变量转化为数值型(Numeric) 目录 R语言将字符型(Character)变量转化为数值型(Numeric) #基本语法

  10. oracle 日期改字符格式_oracle怎么把数值型日期转换成日期字符型

    展开全部 oracle把数值型日期转换bai成日期字符du型的操作方法和详细步骤zhi如下: 1.首先dao,将字符串类型版转换为权数字类型. 此方法使用to_number()直接进行转换. 具体语法 ...

最新文章

  1. java 默认数据库创建路径_无法创建数据库路径文件:/ user / hive /仓库错误
  2. 数据库系统概念总结:第五章 高级SQL
  3. 【Rain in ACStar HDU-3340】
  4. 抛开vue-cli 利用requireJS搭建一个vue项目
  5. javase中的super、this和protected关键字
  6. 运动会加油稿计算机学院,信息工程学院运动会加油稿
  7. 【已解决】清除linux系统的多余引导
  8. visio流程图总是自动变小_Visio 2010 中新增功能详细介绍
  9. 油管上如何带中文字幕看Peoplesoft最新视频
  10. java 打印 xps_使用Java 将PPT转换为PDF、XPS等格式
  11. Java - JDBC Best Practices
  12. lwip协议栈在linux运行,一种轻量级的TCP_IP协议栈LwIP在嵌入式系统中的应用
  13. 1年时间,年薪增加10万,前端小兵的我是如何做到的?
  14. 类似支付宝密码框输入
  15. 谈谈创业这点事 专业的盲区
  16. STM32【H7】理论——综述、HAL库简述
  17. JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)
  18. 高项_第十章项目沟通管理
  19. 解决Leaflet.draw中polyline绘制无法结束的问题
  20. Python学习之学校教学( 已知复数,请写出它的模、实部、虚部及共轭复数)

热门文章

  1. Kubernetes Job Controller源码分析
  2. Google Play在GDC大会上发布全新工具及游戏
  3. 字符串与数字双向转换
  4. CodeBlocks13.12汉化以及去掉注释及字符串的下划线
  5. 关于android的tabhost中进行参数传递的问题
  6. Python自然语言处理学习笔记(60):7.1 信息抽取
  7. 终于知道《喜洋洋和灰太狼》为什么火了!
  8. 05-Vue报错 Uncaught SyntaxError: Identifier has already been declared和路由
  9. ZooKeeper 初体验
  10. 自动化测试方案_2第二章、自动化测试是什么?(What)