Questions tagged «sql»

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

5
MySQL SELECT最近几天?
我在玩MYSQL,我知道有一个limit命令可以显示一定数量的结果,但是我想知道MySQL是否只能显示最近3天之类的信息。就是想。 更新: 我使用NOW()来存储时间。
71 mysql  sql 

2
exec失败,因为名称不是有效的标识符?
我有一个查询,我需要将其作为动态查询运行以输出有意义的列名。例如,如果我直接运行查询,它将正确返回数据。但是,如果我使用下面的代码,它将显示: The name ' SELECT (CASE WHEN A.Domain IS NOT NULL THEN A.Domain ELSE B.Domain END) AS [Domain], (CASE WHEN A.Email IS NOT NULL THEN A.Email ELSE B.Email END) AS [Email], A.[Sender Size] AS [Sender Size 1], A.[Sender Count] AS [Sender Count 1], A.[Receiver Size] AS [Receiver Size 1], A.[Receiver …

9
MySQL快速从大型数据库中删除重复项
我有大的(>百万行)MySQL数据库被重复弄乱了。我认为这可能是充满它们的整个数据库的1/4到1/2。我需要快速摆脱它们(我是指查询执行时间)。外观如下: id(索引)| text1 | text2 | text3 text1&text2组合应该是唯一的,如果有重复项,则仅应保留一个text3 NOT NULL组合。例: 1 | abc | def | NULL 2 | abc | def | ghi 3 | abc | def | jkl 4 | aaa | bbb | NULL 5 | aaa | bbb | NULL ...成为: 1 | abc | …
70 sql  mysql  duplicates 

9
PostgreSQL GROUP BY与MySQL不同吗?
我一直在将一些MySQL查询迁移到PostgreSQL以使用Heroku。我的大多数查询工作正常,但是当使用group by时,我仍然遇到类似的重复错误: 错误:“ XYZ”列必须出现在GROUP BY子句中或在聚合函数中使用 有人可以告诉我我在做什么错吗? 可以100%运行的MySQL: SELECT `availables`.* FROM `availables` INNER JOIN `rooms` ON `rooms`.id = `availables`.room_id WHERE (rooms.hotel_id = 5056 AND availables.bookdate BETWEEN '2009-11-22' AND '2009-11-24') GROUP BY availables.bookdate ORDER BY availables.updated_at PostgreSQL错误: ActiveRecord :: StatementInvalid:PG错误:错误:列“ availables.id”必须出现在GROUP BY子句中或在聚合函数中使用: SELECT“ availables”。* FROM“ availables” INNER JOIN“ rooms” ON“ rooms”。 id …


3
表扫描和聚集索引扫描之间有什么区别?
由于aTable Scan和aClustered Index Scan本质上都扫描表中的所有记录,因此为什么应该说聚簇索引扫描更好? 举个例子-当有很多记录时,以下各项之间的性能差异是什么?: declare @temp table( SomeColumn varchar(50) ) insert into @temp select 'SomeVal' select * from @temp ----------------------------- declare @temp table( RowID int not null identity(1,1) primary key, SomeColumn varchar(50) ) insert into @temp select 'SomeVal' select * from @temp


5
SQL Performance UNION与OR
我刚刚阅读了优化文章的一部分,并对以下语句进行了细分: 当使用SQL代替using语句OR有UNION: select username from users where company = ‘bbc’ or company = ‘itv’; 至: select username from users where company = ‘bbc’ union select username from users where company = ‘itv’; 从快速EXPLAIN: 使用OR: 使用UNION: 这是否意味着工作量UNION会增加一倍? 尽管我赞赏UNION某些RDBMS和某些表模式的性能可能更高,但这在作者看来并不完全正确。 题 我错了吗?
70 mysql  sql  performance  union 

5
JOIN语句(SQL)中的“左”表和“右”表到底是哪个表?
是什么使给定的表成为左表? 该表是否在查询的“发件人”部分中指明? 还是因为它位于=运算符的左侧,所以它是左侧的表格吗? 以下是否等效 SELECT * FROM left_table LEFT JOIN right_table ON left_table.right_id = right_table.id 和 SELECT * FROM left_table LEFT JOIN right_table on right_table.left_id = left_table.id ??? 谢谢
70 sql  join 

5
了解CUBE和ROLLUP之间的区别
我的作业要求我找出“每个日期写了多少张发票?” 我有点被困住了,向我的教授寻求帮助。她通过电子邮件向我发送了一个查询,该查询将回答以下问题:“每种类型和版本的炉灶数量已制成?要挑战但不要加分,请包括炉灶总数”。 这是她向我发送的查询: SELECT STOVE.Type + STOVE.Version AS 'Type+Version' , COUNT(*) AS 'The Count' FROM STOVE GROUP BY STOVE.Type + STOVE.Version WITH ROLLUP; 因此,我调整了该查询,直到满足我的需求为止。这是我想出的: SELECT InvoiceDt , COUNT(InvoiceNbr) AS 'Number of Invoices' FROM INVOICE GROUP BY InvoiceDt WITH ROLLUP ORDER BY InvoiceDt ASC; 它返回了我想要的以下结果。 无论如何,我决定阅读ROLLUP子句,并从Microsoft的文章开始。它说ROLLUP子句类似于CUBE子句,但是它通过以下方式与CUBE子句区分开: 多维数据集生成结果集,该结果集显示所选列中所有值组合的汇总。 ROLLUP生成一个结果集,该结果集显示所选列中值层次结构的聚合。 因此,我决定将查询中的ROLLUP替换为CUBE以查看会发生什么。他们产生了相同的结果。我想那是我感到困惑的地方。 看起来,如果您使用的是我在这里使用的查询类型,则这两个子句之间没有任何实际区别。是对的吗?还是我不了解某事?我曾经想过,当我阅读完Microsoft文章时,使用CUBE子句的结果应该有所不同。

3
插入没有值的表的语法?
我有一个使用以下架构创建的表: CREATE TABLE [dbo].[Visualizations] ( VisualizationID int identity (1,1) NOT NULL ) 由于该表没有可设置的字段,因此我不确定如何插入记录。我试过了: INSERT INTO [Visualizations]; INSERT INTO [Visualizations] () VALUES (); 都不起作用。正确的语法是什么? 编辑:由于许多人似乎对我的表感到困惑,因此它仅用于表示许多子表的父表...每个人都通过FK引用此表,而每个FK都是PK,因此跨所有在这些表中,ID是唯一的。
70 sql  sql-server  tsql  insert 

6
尽管每列都使用varchar(MAX),但导入CSV文件时SQL Server中出现错误
我正在尝试将CS​​V文件(几个演出)插入其中SQL Server,但是一旦我通过Import Wizard并最终尝试导入该文件,就会收到以下错误报告: 执行(错误)消息 错误0xc02020a1:数据流任务1:数据转换失败。“列标题”列的数据转换返回状态值4和状态文本“文本已被截断或目标代码页中的一个或多个字符不匹配”。 (SQL Server Import and Export Wizard) 错误0xc020902a:数据流任务1:“源-Train_csv.Outputs [平面文件源输出] .Columns [“标题”]“由于发生截断而失败,并且截断行位于“源-Train_csv.Outputs [平面文件源”上输出] .Columns [“标题”]“指定截断失败。在指定组件的指定对象上发生了截断错误。 (SQL Server Import and Export Wizard) 错误0xc0202092:数据流任务1:处理数据行2上的文件“ C:\ Train.csv”时发生错误。 (SQL Server Import and Export Wizard) 错误0xc0047038:数据流任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。Source-Train_csv上的PrimeOutput方法返回错误代码0xC0202092。当管道引擎调用PrimeOutput()时,该组件返回失败代码。故障代码的含义由组件定义,但错误是致命的,并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 (SQL Server Import and Export Wizard) 我创建了将文件插入到其中的表,然后将每一列都设置为容纳varchar(MAX),所以我不明白如何仍然会遇到这种截断问题。我究竟做错了什么?
70 sql  sql-server  csv 

6
在SQL Server 2008中截断/清除表变量
是否可以在SQL Server 2008中截断或刷新表变量? Declare @tableVariable table ( id int, value varchar(20) ) while @start<=@stop begin insert into @tableVariable(id,value) select id , value from xTable where id=@start --Use @tableVariable --@tableVariable should be flushed out of -- old values before inserting new values set @start = @start + 1 end
70 sql  sql-server 

6
从SQL联盟中删除重复项
我正在使用联合(对或错)在一些表上做一些基本的sql 但我需要删除重复项。有任何想法吗? select * from calls left join users a on calls.assigned_to= a.user_id where a.dept = 4 union select * from calls left join users r on calls.requestor_id= r.user_id where r.dept = 4
70 sql  tsql 

5
为什么我不能在SQL Management Studio的开始/结束块中使用“创建模式”?
我生成了一个脚本,该脚本创建了该数据库的所有用户和模式,当我用IF EXISTS检查包装CREATE语句时,我发现它不允许CREATE SCHEMA调用在BEGIN / END块中运行。它抱怨说这是无效的语法。但是我可以自己运行命令。下面是代码示例。我正在使用SQL Server 2008和Management Studio R2。为什么此语法无效? --DROP SCHEMA [acme] IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'acme')) BEGIN CREATE SCHEMA [acme] AUTHORIZATION [dbo] END
70 sql  sql-server  tsql 

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.