排序的時候將數據整理一下
'1'-----> '01'
'1.1'----->'01.01'
'10'----->'10'
'10.1'----->'10.01'
'1'-----> '01'
'1.1'----->'01.01'
'10'----->'10'
'10.1'----->'10.01'
解决方案 »
- 能不能判断一句SQL是代码执行的还是手工在数据库执行的?
- 这样的要要求,如何设计数据库???
- 用SqlBulkCopy类将Excel数据导入数据库中如何监听未导入的数据
- 我想做数据库的人都会遇到这个简单的问题,在线等.....
- 对于新手的我又是一大难题,关于调用数据库数据然后编辑后新建表单并存入...
- 关于 BOM 复制 SQL 语句怎么写?
- 多次运行一个存储过程,100次中可能出现2次左右得不到要查询的数据?
- 系统安装二个sql实例后登录问题?
- 我是一个数据库初学者,因公司需要,要学sql 2000,不知道CSDN中高手怎么去学的呢,
- 何为分布式,什么样的程序算分布式?UP有分!
- select @name = i.un from inserted i
- like只包含所选关键词的查询
returns varchar(20)
as
begin
declare @strInt int
declare @strArg varchar(20)=''
declare @charInt int=0
set @strInt=charindex('.',@str,1)
while(@strInt>0)
begin
set @charInt=@strInt-1
if(@charInt<0)
set @charInt=0
set @strArg=@strArg+right('00'+substring(@str,1,@charInt),2)+'.'
set @str=substring(@str,@strInt+1,len(@str))
set @strInt=charindex('.',@str,1)
end
set @strArg=@strArg+right('00'+substring(@str,1,len(@str)),2)+'.'
return @strArg
endselect * from tablename order by dbo.func_reconbineStr(字段)
这个不行吗?
DROP TABLE test
GOCREATE TABLE test
(
[Order] VARCHAR(16)
)
GOINSERT INTO test
SELECT '5.1' UNION ALL
SELECT '1' UNION ALL
SELECT '20' UNION ALL
SELECT '2.1.2' UNION ALL
SELECT '10.1' UNION ALL
SELECT '3.4.1.2.3'
GOSELECT [Order] FROM test ORDER BY CAST(LEFT([Order],CHARINDEX('.',[Order])) + REPLACE(RIGHT([Order],LEN([Order]) -CHARINDEX('.',[Order])),'.','') AS DECIMAL(10,8))
Order
----------------
1
2.1.2
3.4.1.2.3
5.1
10.1
20