将按特定顺序重新组织结果的SQL语句
我编写的上述查询没有按照请求的顺序执行结果,如所附图像中所示 我是SQL新手将按特定顺序重新组织结果的SQL语句,sql,sql-server,Sql,Sql Server,我编写的上述查询没有按照请求的顺序执行结果,如所附图像中所示 我是SQL新手 可能只是sort by子句中的另一个排序字段 SELECT Region,Contact FROM Salesman_Info Order by Region DESC; 你可以用 SELECT Region, Contact FROM Salesman_Info Order by Region DESC, Contact; 如果区域列的顺序是字母顺序,但由多个单词组成的除外,则应在最后进行排序。下面将给出
可能只是sort by子句中的另一个排序字段
SELECT Region,Contact
FROM Salesman_Info
Order by Region DESC;
你可以用
SELECT Region, Contact
FROM Salesman_Info
Order by Region DESC, Contact;
如果区域列的顺序是字母顺序,但由多个单词组成的除外,则应在最后进行排序。下面将给出您需要的输出,使用@Barbaros(+1)建议
with t(region) as
(
select 'Durban' union all
select 'Johannesburg' union all
select 'Cape Town'
)
select t.*
from t
order by charindex(' ',region) , region;
结果
declare @t table (region nvarchar(20), contact nvarchar(10))
insert into @t values
('Cape Town','Anna'),
('Cape Town','Fred'),
('Durban','John'),
('Durban','Mary'),
('Johannesburg','Frank'),
('Cape Town','Joe')
select *
from @t
order by charindex(' ',region) ,region asc,
contact asc;
来自
sallers\u Info
表的样本数据?我在您的“解决方案打印输出”中没有看到任何订单序列。你能解释一下它应该是什么顺序吗?区域顺序的确切逻辑是什么。。?你的意思是按字母顺序排列,区域最后有更多的单词。你用什么方法来确定顺序?当然它不是按字母顺序排列的('C'
在'D'
和'J'
之后)。如果是插入顺序,除非您有某种序列
或标识
列,否则在插入
数据时,该“顺序”将立即丢失。表没有“默认”顺序;数据引擎只需以它感觉像/首先找到的任何顺序返回数据。@NigelCovender是否有任何逻辑来排序区域
?或者它应该只是打印出来,没有任何逻辑在这样的顺序?不给我的顺序。表上也没有索引或主键。这是我用值创建的一个简单表,需要按照附件的格式输出please@NigelGovender,很高兴它对你有用,请投票并接受答案。谢谢
region contact
Durban John
Durban Mary
Johannesburg Frank
Cape Town Anna
Cape Town Fred
Cape Town Joe