ORDER BY в C#
Сортировка ORDER BY упорядочивает строки
по столбцу. ASC идёт по возрастанию,
DESC - по убыванию. Текст сравнивается
по алфавиту, числа - по величине.
Без сортировки порядок строк не гарантирован. После вставки "b" и "a" запрос ORDER BY name ставит "a" раньше:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.14" />
</ItemGroup>
</Project>
using Microsoft.Data.Sqlite;
using SqliteConnection db = new("Data Source=:memory:");
db.Open();
using (SqliteCommand c = db.CreateCommand())
{
c.CommandText = "CREATE TABLE IF NOT EXISTS t (name TEXT); INSERT INTO t VALUES ('b'),('a')";
c.ExecuteNonQuery();
}
using SqliteCommand q = db.CreateCommand();
q.CommandText = "SELECT name FROM t ORDER BY name";
using SqliteDataReader r = q.ExecuteReader();
r.Read();
Console.WriteLine(r.GetString(0));
Направление DESC ставит большее значение первым. В примере его нет: порядок по возрастанию, "a" идёт раньше.
Создайте таблицу "cities", добавьте
названия "Oslo", "Minsk" и
"Riga" и выведите их по алфавиту.