【发布时间】:2019-04-07 17:17:28
【问题描述】:
我对一段看似简单的代码有疑问。我有一个名为 Songs_DB 的表,其中包含一些歌曲的详细信息,包括一个名为 ELO 的列,它基本上是它们的排名。我希望根据 ELO 得分前 10 名的歌曲,将名为 SONG_ID 的列中的值转移到名为 Smartlist 的不同表中。
目前我想出的代码如下-
Dim Insert As New SqlCommand("INSERT INTO SMARTLIST (Song_ID) VALUES (SONG_ID) FROM SONGS_DB WHERE ELO IN (SELECT TOP 10 ELO FROM SONGS_DB ORDER BY ELO [ASC])", con)
Insert.ExecuteNonQuery()
这将返回以下错误-
System.Data.SqlClient.SqlException: '关键字'FROM'附近的语法不正确。 关键字“ORDER”附近的语法不正确。'
IV 尝试通过其他几种方式做到这一点,但一直没有运气!我做错了什么?
【问题讨论】:
-
你打算如何处理关系,例如如果有 7 首歌曲并列最高
ELO,然后 6 首歌曲并列第二高值怎么办?拿走所有 13 个?拿艺术家的Bacon Number订购的下一个领带的前7个,然后是前3个?如果这造成另一个平局怎么办?
标签: sql-server vb.net tsql