标签: sql

如何更新sql server中的前100条记录

我想更新SQL Server中的前100条记录.我有一个表T1包含字段F1F2.T1有200条记录.我想更新F1前100条记录中的字段.如何TOP 100在SQL Server中进行更新?

sql t-sql sql-server sql-update

376
推荐指数
4
解决办法
38万
查看次数

如何在SQL数据库表中选择第n行?

我有兴趣学习一些(理想情况下)数据库无关的方法来从数据库表中选择第n行.看看如何使用以下数据库的本机功能实现这一目标也很有趣:

  • SQL Server
  • MySQL的
  • PostgreSQL的
  • SQLite的
  • 神谕

我目前正在SQL Server 2005中执行类似下面的操作,但我有兴趣看到其他更不可知的方法:

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000
Run Code Online (Sandbox Code Playgroud)

感谢上述SQL:Firoz Ansari的Weblog

更新:请参阅Troels Arvin关于SQL标准的答案.Troels,您有任何我们能引用的链接吗?

mysql sql database oracle postgresql

373
推荐指数
13
解决办法
72万
查看次数

SQL Server SELECT进入现有表

我试图从一个表中选择一些字段并将它们从存储过程插入到现有表中.这是我正在尝试的:

SELECT col1, col2
INTO dbo.TableTwo 
FROM dbo.TableOne 
WHERE col3 LIKE @search_key
Run Code Online (Sandbox Code Playgroud)

我认为select into是临时表,这就是为什么我得到一个SELECT ... INTO ...已经存在的错误.

我怎样才能插入多行dbo.TableTwodbo.TableOne

sql t-sql sql-server stored-procedures

373
推荐指数
3
解决办法
46万
查看次数

使用Hibernate时如何使用参数值打印查询字符串

在Hibernate中是否可以使用实际值而不是问号来打印生成的SQL查询?

如果使用Hibernate API无法打印具有实际值的查询,您会建议如何?

java sql orm hibernate

370
推荐指数
11
解决办法
32万
查看次数

如何在JDBC中获取插入ID?

我希望INSERT在Java中使用JDBC中的数据库(在我的情况下是Microsoft SQL Server)中的记录.同时,我想获取插入ID.如何使用JDBC API实现此目的?

java sql insert-id jdbc

366
推荐指数
5
解决办法
26万
查看次数

MySQL中的多个更新

我知道你可以一次插入多行,有没有办法在MySQL中一次更新多行(如在一个查询中)?

编辑:例如我有以下内容

Name   id  Col1  Col2
Row1   1    6     1
Row2   2    2     3
Row3   3    9     5
Row4   4    16    8
Run Code Online (Sandbox Code Playgroud)

我想将以下所有更新组合到一个查询中

UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-update

363
推荐指数
8
解决办法
36万
查看次数

是否可以在Count()中指定条件?

是否可以指定条件Count()?我想只计算在Position列中有"Manager"的行.

我想在count语句中这样做,而不是使用WHERE; 我问的是因为我需要同时统计管理者和其他人SELECT(在这个例子中,对我来说Count(Position = Manager), Count(Position = Other))这样的事情WHERE是没用的.

sql t-sql sql-server

363
推荐指数
8
解决办法
42万
查看次数

SQL Server中的嵌套select语句

有人可以帮助我理解为什么以下不起作用?

SELECT name FROM (SELECT name FROM agentinformation)
Run Code Online (Sandbox Code Playgroud)

我想我对SQL的理解是错误的,因为我会认为这会返回相同的东西

SELECT name FROM agentinformation
Run Code Online (Sandbox Code Playgroud)

内部select语句是否创建了外部SELECT语句然后查询的结果集?

sql sql-server nested querying subquery

363
推荐指数
2
解决办法
64万
查看次数

在sql server中有效地将行转换为列

我正在寻找一种有效的方法将行转换为SQL服务器中的列,我听说PIVOT不是很快,我需要处理大量的记录.

这是我的例子:

   -------------------------------
   | Id | Value  | ColumnName    |
   -------------------------------
   | 1  | John   | FirstName     |
   | 2  | 2.4    | Amount        |
   | 3  | ZH1E4A | PostalCode    |
   | 4  | Fork   | LastName      |
   | 5  | 857685 | AccountNumber |
   -------------------------------
Run Code Online (Sandbox Code Playgroud)

这是我的结果:

---------------------------------------------------------------------
| FirstName  |Amount|   PostalCode   |   LastName  |  AccountNumber |
---------------------------------------------------------------------
| John       | 2.4  |   ZH1E4A       |   Fork      |  857685        |
---------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我该如何建立结果?

sql sql-server pivot sql-server-2008

362
推荐指数
3
解决办法
80万
查看次数

在GROUP BY中使用LIMIT来获得每组N个结果?

以下查询:

SELECT
year, id, rate
FROM h
WHERE year BETWEEN 2000 AND 2009
AND id IN (SELECT rid FROM table2)
GROUP BY id, year
ORDER BY id, rate DESC
Run Code Online (Sandbox Code Playgroud)

收益率:

year    id  rate
2006    p01 8
2003    p01 7.4
2008    p01 6.8
2001    p01 5.9
2007    p01 5.3
2009    p01 4.4
2002    p01 3.9
2004    p01 3.5
2005    p01 2.1
2000    p01 0.8
2001    p02 12.5
2004    p02 12.4
2002    p02 12.2
2003    p02 10.3
2000    p02 8.7
2006    p02 …
Run Code Online (Sandbox Code Playgroud)

mysql sql ranking greatest-n-per-group

361
推荐指数
8
解决办法
32万
查看次数