Questions tagged «sql»

结构化查询语言(SQL)是用于查询数据库的语言。问题应包括代码示例,表结构,示例数据以及正在使用的DBMS实现的标签(例如MySQL,PostgreSQL,Oracle,MS SQL Server,IBM DB2等)。如果您的问题仅涉及特定的DBMS(使用特定的扩展名/功能),请改用该DBMS的标签。使用SQL标记的问题的答案应使用ISO / IEC标准SQL。

7
如何为每个键值选择带有最近时间戳记的行?
我有一张传感器数据表。每行都有一个传感器ID,一个时间戳和其他字段。我想为每个传感器选择一个带有最新时间戳的单行,包括其他一些字段。 我认为解决方案是按传感器ID分组,然后按max(timestamp)排序,如下所示: SELECT sensorID,timestamp,sensorField1,sensorField2 FROM sensorTable GROUP BY sensorID ORDER BY max(timestamp); 这给我一个错误,说“ sensorField1必须出现在group by子句中或在聚合中使用”。 解决此问题的正确方法是什么?

5
如何在SQL中删除ID为(x到y)的多行
我正在尝试运行SQL查询以删除表中ID为163到265的行 我试图这样做以减少行数 DELETE FROM `table` WHERE id IN (264, 265) 但是,一次要删除100行时,是否有类似于上述方法的查询,我也试图使用这种查询,但执行失败 DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = ) 请告诉我查询以执行上述操作...
86 sql  sql-delete 

8
SQL用于按数字排序-1,2,3,4等,而不是1,10,11,12
我正在尝试按数据库中数值为1-999的数字列进行排序 当我使用 ORDER_BY registration_no ASC 我明白了。 1 101 102 103 104 105 106 107 108 109 11 110 Etc… 因此,它似乎是按与数字相反的第一个数字排序的。 如果我想按值排序,谁知道使用什么SQL?所以,1,2,3,4,5,6等
86 sql  sql-order-by 

4
SQL列定义:默认值和非null冗余吗?
我已经多次看到以下语法,该语法定义了create / alter DDL语句中的列: ALTER TABLE tbl ADD COLUMN col VARCHAR(20) NOT NULL DEFAULT "MyDefault" 问题是:由于指定了默认值,是否还需要指定该列不应该接受NULL?换句话说,DEFAULT是否不使NOT NULL变得多余?


9
提高大表上的SQL Server查询性能
我有一个相对较大的表(当前有200万条记录),想知道是否有可能提高即席查询的性能。临时一词在这里是关键。添加索引不是一种选择(最常见查询的列上已经有索引)。 运行一个简单的查询以返回100条最近更新的记录: select top 100 * from ER101_ACCT_ORDER_DTL order by er101_upd_date_iso desc 需要几分钟。请参阅下面的执行计划: 表扫描的其他详细信息: SQL Server Execution Times: CPU time = 3945 ms, elapsed time = 148524 ms. 该服务器运行sql server 2008 r2 x64的功能非常强大(内存48GB ram,24核处理器)。 更新资料 我发现此代码创建具有1,000,000条记录的表。我以为我可以SELECT TOP 100 * FROM testEnvironment ORDER BY mailAddress DESC在几个不同的服务器上运行,以了解服务器上的磁盘访问速度是否较差。 WITH t1(N) AS (SELECT 1 …

4
MySQL,连接两列
MySQL表中有两列:SUBJECT和YEAR。 我想生成一个字母数字唯一数字,其中包含SUBJECT和YEAR的级联数据。 我怎样才能做到这一点?是否可以使用像这样的简单运算符+?
85 php  mysql  sql 

6
在postgres中复制表(包括索引)
我有一张postgres桌子。我需要从中删除一些数据。我打算创建一个临时表,将数据复制到其中,重新创建索引并删除所需的行。我无法从原始表中删除数据,因为该原始表是数据源。在一种情况下,我需要得到一些取决于删除X的结果,在另一种情况下,我需要删除Y。因此,我需要所有原始数据始终存在并可用。 但是,重新创建表并再次将其复制并重新创建索引似乎有点愚蠢。无论如何,postgres都会告诉它“我想要该表的完整单独副本,包括结构,数据和索引”吗? 不幸的是PostgreSQL没有“ CREATE TABLE..LIKE X INCLUDING INDEXES”


5
列的顺序在group by子句中是否重要?
如果我有两列,一列具有非常高的基数,而另一列具有非常低的基数(值的唯一数目),那么按哪个顺序分组是否重要? 这是一个例子: select dimensionName, dimensionCategory, sum(someFact) from SomeFact f join SomeDim d on f.dimensionKey = d.dimensionKey group by d.dimensionName, -- large number of unique values d.dimensionCategory -- small number of unique values 在某些情况下重要吗?

9
MySQL DELETE FROM以子查询为条件
我试图做这样的查询: DELETE FROM term_hierarchy AS th WHERE th.parent = 1015 AND th.tid IN ( SELECT DISTINCT(th1.tid) FROM term_hierarchy AS th1 INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015) WHERE th1.parent = 1015 ); 您可能会说,如果同一提示有其他父母,我想删除1015的父母关系。但是,这产生了一个语法错误: You have an error in your SQL syntax; check the manual …


2
SQL SELECT多列INTO多变量
我正在将SQL从Teradata转换为SQL Server 在Teradata中,它们具有以下格式 SELECT col1, col2 FROM table1 INTO @variable1, @variable2 在SQL Server中,我发现 SET @variable1 = ( SELECT col1 FROM table1 ); 那每个语句只允许一个列/变量。如何使用单个SELECT语句分配2个或更多变量?

1
在PostgreSQL中计算累计和
我想查找字段的累积或运行量,并将其从暂存插入表中。我的暂存结构是这样的: ea_month id amount ea_year circle_id April 92570 1000 2014 1 April 92571 3000 2014 2 April 92572 2000 2014 3 March 92573 3000 2014 1 March 92574 2500 2014 2 March 92575 3750 2014 3 February 92576 2000 2014 1 February 92577 2500 2014 2 February 92578 1450 2014 …

10
在JDBC中处理DATETIME值0000-00-00 00:00:00
如果尝试这样做,我会得到一个例外(见下文) resultset.getString("add_date"); 用于与包含注册日期为00:00:00的DATETIME值(DATETIME的准空值)的MySQL数据库的JDBC连接,即使我只是试图将值作为字符串而不是目的。 我通过这样做解决了 SELECT CAST(add_date AS CHAR) as add_date 哪个可行,但看起来很愚蠢……有更好的方法吗? 我的意思是,我只是想生DATETIME字符串,所以我可以解析它自己为是。 注意:这里是0000的来源:(来自http://dev.mysql.com/doc/refman/5.0/en/datetime.html) 非法的DATETIME,DATE或TIMESTAMP值将转换为适当类型(“ 0000-00-00 00:00:00”或“ 0000-00-00”)的“零”值。 具体的例外情况是: SQLException: Cannot convert value '0000-00-00 00:00:00' from column 5 to TIMESTAMP. SQLState: S1009 VendorError: 0 java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 5 to TIMESTAMP. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) …
85 java  sql  date  jdbc 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.