SQL Server查询顺序按列包含字符串

Ali*_*Net 2 sql-server asp.net drop-down-menu

我正在从nvarchar我的SQL Server数据库中的column()填充我的ASP.NET下拉列表.

有没有办法可以将包含关键字的行带到我返回的结果集的开头?

例如,我在表格中有这些记录:

abc
abc1
abcd2
abcXYZ3
adfdf3XYZ
abcd5
Run Code Online (Sandbox Code Playgroud)

我希望XYZ在我的下拉列表顶部有行,即:

abcXYZ3
adfdf3XYZ
abc
abc1
abcd2
abcd5
Run Code Online (Sandbox Code Playgroud)

是否可以为此目的创建SQL查询,例如:

select * 
from myTable 
order by (mycolumn LIKE '%XYZ%')
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到我想要的结果?如果在SQL Server中无法实现,我该如何在C#代码中执行此操作?

Mar*_*ith 8

要在SQL中执行它可以使用

SELECT *
FROM   myTable
ORDER  BY CASE
            WHEN mycolumn LIKE '%XYZ%' THEN 0
            ELSE 1
          END,
          mycolumn 
Run Code Online (Sandbox Code Playgroud)