高分求解SQL语句 - MS-SQL Server / 疑难问题
对于数据库中的两条数据
1-5.1
1-5.10
1-5.9
如何实现查旬结果按照从小到大的排序
1-5.1
1-5.9
1-5.10
SQL code:
if not object_id('tb') is null
drop table tb
Go
Create table tb([col] varchar(10))
Insert tb
select '1-5.1' union all
select '1-5.10' union all
select '1-5.9'
Go
select *
from tb
order by left(col,charindex('.',col)-1)
,cast(right(col,len(col)-charindex('.',col))as float)asc
/*
col
----------
1-5.1
1-5.9
1-5.10
*/
SQL code:
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb] ([col] varchar(10))
INSERT INTO [tb]
SELECT '1-5.1' UNION ALL
SELECT '1-5.10' UNION ALL
SELECT '1-5.9' UNION ALL
SELECT '1-3.9' UNION ALL
SELECT '1-3.12' UNION ALL
SELECT '1-3.3'
--SELECT * from [tb]
-->SQL查询如下:
select * from tb order by left(col,charindex('.',[col])),stuff(col,1,charindex('.',[col]),'')*1
/*
col
----------
1-3.3
1-3.9
1-3.12
1-5.1
1-5.9
1-5.10
(6 行受影响)
*/
select * from tb
order by cast(replace(col,'-','0') as decimal)
SQL code:
相关问答:
执行的顺序:
1)文件浏览框(选择文件使用)
选择好文件后
点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下
2)读取这个文件夹下的csv的文件,转换成sql
3 ......
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间
Id value state dattime
101 32.3 0 ......
查询学生平均成绩及其名次
SELECT 1+(SELECT COUNT( distinct 平均成绩)
from (SELECT S#,AVG(score) AS 平均成绩
from SC&n ......