Art*_*hez 1 t-sql sql-server sql-order-by
在SQL Server中,我有一个表格,其中包含我要排序的列.如果我按照惯例应用ORDER BY,它按预期执行以下操作:
banana
bananaphone
car
carpet
dishes
//etc
Run Code Online (Sandbox Code Playgroud)
但是,我想让它们以另一种方式排序:
bananaphone
banana
carpet
car
dishes
//etc
Run Code Online (Sandbox Code Playgroud)
按字典顺序排列,但如果字母匹配且一个字母长于另一个字母,请将较长的字母放在第一位.
是否可以在T-SQL中进行此类查询?
我甚至不知道这种排序算法是否有名称,我找不到它.
请注意,这篇文章中的数据只是一个例子,我将存储用户定义的数据.
这似乎有效:
declare @YourTable table (YourColumn varchar(100));
insert into @YourTable
select 'bananaphone' union all
select 'banana' union all
select 'carpet' union all
select 'car' union all
select 'dishes' union all
select 'carpet' union all
select 'cars' union all
select 'CARP'
select YourColumn
from @YourTable
order
by YourColumn+replicate(char(255), 100-len(YourColumn));
Run Code Online (Sandbox Code Playgroud)