小编Ter*_*e00的帖子

SQL:在"IN"语句中按顺序排序

基础数据:

请注意,这是所有SQL Server.

好的,所以基表看起来像这样(称之为NameTable):

ID    |    Name
___________________
1     |    Randy
2     |    Kenny
3     |    Stan
4     |    Kyle
5     |    Cartman
Run Code Online (Sandbox Code Playgroud)

现在我将运行一个SQL查询:

SELECT * FROM [NameTable] WHERE Name IN ("Kyle", "Stan", "Kenny", "Cartman", "Randy")
Run Code Online (Sandbox Code Playgroud)

目前的结果:

ID    |    Name
___________________
1     |    Randy
2     |    Kenny
3     |    Stan
4     |    Kyle
5     |    Cartman
Run Code Online (Sandbox Code Playgroud)

这是预期的.这很好,但我需要的是按照它们在IN语句中出现的顺序来排序数据.

所以在这种情况下:凯尔,斯坦,肯尼,卡特曼,兰迪.

请特别注意,这不符合标准订单,因为它不一定按字母顺序排列

需要的结果:

 ID    |    Name
___________________
4     |    Kyle
3     |    Stan
2     |    Kenny
5     |    Cartman
1     |    Randy …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

2
推荐指数
1
解决办法
71
查看次数

自动递增主键的SQLite表

那么主要的问题是我在尝试插入数据条目时遇到错误.

(不自动递增主键)

表创建:

SQLiteConnection _sqliteCon = new SQLiteConnection(_connectStr);
_sqliteCon.Open();

string query5 = "CREATE TABLE Merkmal(MerkmalID INT PRIMARY KEY NOT NULL, ";
        query5 += "MerkmalName_FR TEXT);";
        SQLiteCommand command5 = new SQLiteCommand(query5, _sqliteCon);
        command5.ExecuteNonQuery();
        _sqliteCon.Close();
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常.

现在为插入:( 我假设这是我的错误发生的地方)

SQLiteConnection _sqliteCon = new SQLiteConnection(_connectStr);
_sqliteCon.Open();
SQLiteCommand insertSQL = new SQLiteCommand("INSERT INTO Merkmal(MerkmalID,MerkmalName_FR) VALUES (?,?)",_sqliteCon);
insertSQL.Parameters.Add(new SQLiteParameter("param1",null));
insertSQL.Parameters.Add(new SQLiteParameter("param2",SomeString));
insertSQL.ExecuteNonQuery();
_sqliteCon.Close();
Run Code Online (Sandbox Code Playgroud)

有些事情值得注意:

  1. 我试图根本没有放价值.(使用硬编码值)

  2. 尝试插入时,我收到非null异常错误.

创建或插入表的正确方法是什么,以便自动增加主键

先谢谢你们.

c# sqlite

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

sql ×1

sql-server ×1

sqlite ×1