当前位置: 首页 > 面试题库 >

SQL Server查询类似int的varchar数据

商弘义
2023-03-14
问题内容

我有一张

CREATE TABLE table_name
(
P_Id int,
amount varchar(50)
)

数据喜欢

Id amount
----------
1 2340
2 4568
3 10000

现在我想按数量对表进行排序,但是一个问题是数量是varchar,所以它像这样对表进行排序

Id amount
----------
3 10000
1 2340
2 4568

但我想要这样的结果

Id amount
----------
3 10000
2 4568
1 2340

我该怎么办 ?


问题答案:

选择以下内容时,将金额列转换为“数值输入”ORDER BY子句:

SELECT * FROM MyTable
ORDER BY CAST(amount AS Numeric(10,0)) DESC

结果:

ID 数量
3 10000
2个 4568
1个 2340

看到这个SQLFiddle



 类似资料:
  • 问题内容: 我正在尝试使用存储过程基于varchar类型的“名称”列的输入值来返回“项目”表的“ ItemId”列值,但是每当我将任何值传递给存储过程时,它都会向我返回错误: 将数据类型varchar转换为int时出错。 这就是我所说的: 问题答案: 您必须匹配参数:RETURN不会填充OUTPUT参数:您对@itemid的赋值可以做到这一点。 另外,您存储的过程太复杂了。对于从存储的proc返回

  • 如何使用BETWEEN运算符选择存储为varchar(格式:“2012.04”)的日期? 我需要在此字段上选择一年间隔。 现在我正在尝试,但这会导致我的MySQL语法错误: 日期现在是静态的(用于测试),但我需要计算BETWEEN中的第二个值,以便它与BETWEEN部分的第一个值精确为-1年。 非常感谢你!!

  • 使用JDBC驱动程序,我如何使用来自不同查询的多个结果集,而不不断地打开和关闭连接,因为我正在提取所需的w.e并将其传递给另一个方法。每次打开新的conn、语句和结果集时 我试图在一个方法中使用多个结果集,但它一直抛出异常,称结果集已关闭。我没有太多的SqlServver经验,所以任何指导都会有所帮助:-)

  • 本文向大家介绍详解sqlserver查询表索引,包括了详解sqlserver查询表索引的使用技巧和注意事项,需要的朋友参考一下 SELECT   索引名称=a.name  ,表名=c.name  ,索引字段名=d.name  ,索引字段位置=d.colid  需创建索引 例如: 根据某列判断是否有重复记录,如果该列为非主键,则创建索引 根据经常查询的列,创建索引 无须创建索引 字段内容大部分一样,

  • 本文向大家介绍详解SQLServer和Oracle的分页查询,包括了详解SQLServer和Oracle的分页查询的使用技巧和注意事项,需要的朋友参考一下 不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的。当数据量大的时候是必须考虑的。之前一直没有花时间停下来好好总结这里。现在又将Oracle视频中关于分页查询的内容看了一遍,发现很容易就懂了

  • 在我的NestJS项目中,我有这个TypeORM查询: 现在我只想返回名称中包含的用户。在SQL中,这将是一个查询。 在https://github.com/typeorm/typeorm/blob/master/docs/find-options.md中,没有关于通配符查询的信息。 如何执行like查询类型ORM给出了一个解决方案: 但是,我无法使用和,后者在使用而不是时可用。 对于如何使用Ty