Questions tagged «sql»

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

24
Oracle中的LISTAGG返回不同的值
Наэтотвопросестьответына 堆栈溢出нарусском:КакфункциейLISTAGGвернутьзначениябезповторений? 我正在尝试LISTAGG在Oracle中使用该功能。我只想获取该列的不同值。有没有一种方法可以只获取不同的值而无需创建函数或过程? col1 col2创建者 1 2史密斯 1 2约翰 1 3阿杰 1 4羊 1 5杰克 我需要选择col1和LISTAGGcol2(不考虑第3列)。当我这样做时,我得到如下结果LISTAGG:[2,2,3,4,5] 我需要在此处删除重复的“ 2”;我只需要col2对col1的不同值。


3
在INNER JOIN条件下使用“ OR”是个坏主意吗?
为了提高超慢查询的速度(如果有关系,请在SQL Server 2008上,在两个表中各只有几分钟,每行只有约50,000行,要花几分钟),将问题缩小到OR内部联接中,例如: SELECT mt.ID, mt.ParentID, ot.MasterID FROM dbo.MainTable AS mt INNER JOIN dbo.OtherTable AS ot ON ot.ParentID = mt.ID OR ot.ID = mt.ParentID 我将其更改为(希望是)一对等效的左联接,如下所示: SELECT mt.ID, mt.ParentID, CASE WHEN ot1.MasterID IS NOT NULL THEN ot1.MasterID ELSE ot2.MasterID END AS MasterID FROM dbo.MainTable AS mt LEFT JOIN dbo.OtherTable AS ot1 …

9
sql ORDER BY特定值的多个值?
好的,我有一个带有索引键和一个未索引字段的表。我需要找到具有特定值的所有记录并返回该行。我想知道是否可以按多个值排序。 例: id x_field -- ----- 123 a 124 a 125 a 126 b 127 f 128 b 129 a 130 x 131 x 132 b 133 p 134 p 135 i 伪:希望像这样对结果进行排序, where ORDER BY x_field = 'f', 'p', 'i', 'a' SELECT * FROM table WHERE id NOT IN …

5
SQL设置一列的值等于同一表中另一列的值
我有一个带有两个DATETIME列的表。 其中之一从不为NULL,但其中之一有时为NULL。 我需要编写一个查询,该查询会将B列的所有NULL行设置为等于A列中的值。 我已经尝试过该示例,但是所选答案中的SQL无法执行,因为MySQL Workbench似乎不喜欢UPDATE中的FROM。
94 mysql  sql 

14
EXECUTE之后的事务计数指示BEGIN和COMMIT语句的数量不匹配。上一个计数= 1,当前计数= 0
我有一个Insert存储过程,该存储过程将向其馈送数据Table1并从中获取Column1值,Table1并调用第二个存储过程,该第二个存储过程将馈入Table2。 但是当我将第二个存储过程称为: Exec USPStoredProcName 我收到以下错误: EXECUTE之后的事务计数指示BEGIN和COMMIT语句的数量不匹配。先前计数= 1,当前计数= 0。 我已经阅读了其他此类问题的答案,无法找到确切的提交计数被弄乱的地方。

8
1052:字段列表中的列“ id”不明确
我有2张桌子。tbl_names并且tbl_section两者都有id。如何选择id字段,因为我总是会收到此错误: 1052: Column 'id' in field list is ambiguous 这是我的查询: SELECT id, name, section FROM tbl_names, tbl_section WHERE tbl_names.id = tbl_section.id 我可以选择所有字段并避免错误。但这将浪费性能。我该怎么办?




5
如何在存储过程中生成新的Guid?
我目前有一个存储过程,我想在其中向表中插入新行。 insert into cars (id, Make, Model) values('A new Guid', "Ford", "Mustang") 因此,主键“ id”是Guid。我知道如何用C#代码创建新的Guid,但是在存储过程中,我不确定如何为主键值生成新的Guid。

3
存储DateTime(UTC)与存储DateTimeOffset
我通常有一个“拦截器”,在从数据库读取/写入数据库之前,它会进行DateTime转换(从UTC到本地时间,从本地时间到UTC),因此我可以DateTime.Now在整个系统中使用(派生和比较)而不必担心关于时区。 关于序列化和在计算机之间移动数据,无需费心,因为日期时间始终是UTC。 我应该继续以UTC格式存储日期(SQL 2008-datetime),还是应该使用DateTimeOffset(SQL 2008-datetimeoffset)存储日期? 数据库中的UTC日期(datetime类型)已经可以使用并且已经知道很长时间了,为什么要更改它?有什么优势? 我已经研究过类似这样的文章,但是我并不是100%确信。有什么想法吗?

9
使用InnoDB进行全文搜索
我正在开发一个大容量的Web应用程序,其中的一部分是讨论帖子的MySQL数据库,该数据库需要平稳地增长到2000万+行。 我本来打算对表使用MyISAM(用于内置的全文本搜索功能),但是由于单个写入操作而使整个表被锁定的想法使我陷入困境。行级锁具有更大的意义(更不用说InnoDB在处理大型表时的其他速度优势)。因此,基于这个原因,我决心使用InnoDB。 问题是... InnoDB没有内置的全文本搜索功能。 我应该使用第三方搜索系统吗?像Lucene(c ++) / Sphinx吗?你们中的任何数据库忍者有任何建议/指导吗?LinkedIn的zoie(基于Lucene)目前看来是最好的选择...是围绕实时功能构建的(这对我的应用程序而言非常关键。)我有点犹豫,但还没有深入的了解... (仅供参考:将在具有高内存绑定的EC2上使用PHP服务前端)

6
如何创建参数化的SQL查询?我为什么要?
我听说“每个人”都在使用参数化的SQL查询来防止SQL注入攻击,而不必验证用户的每一项输入。 你怎么做到这一点?使用存储过程时,是否会自动获得此信息? 因此,我的理解是非参数化的: cmdText = String.Format("SELECT foo FROM bar WHERE baz = '{0}'", fuz) 这将被参数化吗? cmdText = String.Format("EXEC foo_from_baz '{0}'", fuz) 还是我需要像这样做一些更广泛的事情,以保护自己免受SQL注入? With command .Parameters.Count = 1 .Parameters.Item(0).ParameterName = "@baz" .Parameters.Item(0).Value = fuz End With 除了安全方面的考虑之外,使用参数化查询还有其他优势吗? 更新:这篇很棒的文章与Grotok引用的问题之一相关联。 http://www.sommarskog.se/dynamic_sql.html


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.