Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将按特定顺序重新组织结果的SQL语句_Sql_Sql Server - Fatal编程技术网

将按特定顺序重新组织结果的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; 如果区域列的顺序是字母顺序,但由多个单词组成的除外,则应在最后进行排序。下面将给出

我编写的上述查询没有按照请求的顺序执行结果,如所附图像中所示

我是SQL新手


可能只是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