使用的是SQLserver数据库测试,其他数据库类似. 默认排序是按ID进行排序的 select stu_id ,stu_name from student order by stu_id. 现在需要按姓名排序,姓名数据类型是字符,但里面的内容数字. 如果不是纯数字,无法进行强制转换 select stu_id ,stu_name from student order by right ('0000000000'+stu_name,10)
CREATE FUNCTION [dbo].[StringExtractNumber(FirstOrLast)](@address nvarchar(max),@firstOrLast INT) returns INT as BEGIN DECLARE @returnInt VARCHAR(20) IF @firstOrLast=1 SET @returnInt= REVERSE(SUBSTRING( STUFF(reverse(@address),1,PATINDEX('%[0-9]%',re
SQL Server 中字符类型包括varchar.char.text等.主要用于存储字符数据.varchar和char类型的主要区别在于数据填充.例如,一个列名为FirstName且数据类型为varchar(20)的表,同时将值Brian存储到列FirstName中,那么物理上只存储5个字节.但如果在数据类型为char(20)的列中存储相同的值,将使用全部的的20个字节.SQL将插入拖尾空格来填满20个字符. 注:有这么一个问题,如果要节省空间,那么为什么还要使用char数据类型呢?这是因为使