Questions tagged «sql»

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

10
在Microsoft SQL Server 2005中模拟group_concat MySQL函数?
我正在尝试将基于MySQL的应用程序迁移到Microsoft SQL Server 2005(不是强制选择,但这是必须的)。 在原始应用程序中,我们几乎完全使用了 ANSI-SQL兼容的语句,但有一个明显的例外-我们group_concat相当频繁地使用MySQL的函数。 group_concat顺便说一句,这样做:给一个表,例如,雇员姓名和项目... SELECT empName, projID FROM project_members; 返回: ANDY | A100 ANDY | B391 ANDY | X010 TOM | A100 TOM | A510 ……这就是使用group_concat得到的结果: SELECT empName, group_concat(projID SEPARATOR ' / ') FROM project_members GROUP BY empName; 返回: ANDY | A100 / B391 / X010 TOM …



12
什么是DDL和DML?
我听说过有关数据库的术语DDL和DML,但我不明白它们是什么。 它们是什么,它们与SQL有何关系?
345 sql  ddl  dml 

12
选择随机行PostgreSQL的最佳方法
我想要在PostgreSQL中随机选择行,我尝试了以下方法: select * from table where random() < 0.01; 但是其他一些建议: select * from table order by random() limit 1000; 我有一个很大的表,有5亿行,我希望它能很快。 哪种方法更好?有什么区别?选择随机行的最佳方法是什么?

15
Oracle:如果表存在
我正在为Oracle数据库编写一些迁移脚本,并希望Oracle具有类似于MySQL的IF EXISTS构造。 具体来说,每当我想在MySQL中删除表时,我都会做类似的事情 DROP TABLE IF EXISTS `table_name`; 这样,如果表不存在,DROP则不会产生错误,并且脚本可以继续。 Oracle有类似的机制吗?我意识到我可以使用以下查询来检查表是否存在 SELECT * FROM dba_tables where table_name = 'table_name'; 但是将其与a捆绑在一起的语法使DROP我逃脱了。
343 sql  oracle  sql-drop 



5
将INT转换为VARCHAR SQL
我正在使用Sybase,并且正在执行select操作,该操作返回一个称为“ iftype”的列,但其类型为int,我需要转换为varchar。当我尝试执行没有转换功能的选择时,出现以下错误: 错误代码257,SQL状态37000:不允许从数据类型'VARCHAR'到'INT'的隐式转换。使用CONVERT函数运行此查询。 我不知道如何实现该功能CONVERT。有人可以帮我吗?

15
设置使用人数
受这个问题的启发,在SET NOCOUNT上有不同的看法... 我们是否应该将SET NOCOUNT ON用于SQL Server?如果没有,为什么不呢? 它的作用编辑6,2011年7月22日 它抑制了任何DML之后的“受影响的xx行”消息。这是一个结果集,发送时,客户端必须对其进行处理。它很小,但是可以测量(请参见下面的答案) 对于触发器等,客户端将收到多个“受影响的xx行”,这将导致某些ORM,MS Access,JPA等的各种错误(请参见下面的编辑) 背景: 公认的最佳实践(直到这个问题之前,我一直认为)是SET NOCOUNT ON在SQL Server的触发器和存储过程中使用。我们到处都使用它,一个快速的google也显示出很多SQL Server MVP也同意。 MSDN表示,这可能会破坏.net SQLDataAdapter。 现在,这对我来说意味着SQLDataAdapter仅限于完全CRUD处理,因为它希望“ n个受影响的行”消息匹配。因此,我不能使用: 如果存在则避免重复(不影响行的消息)注意:请谨慎使用 不存在(行数少于预期) 过滤掉琐碎的更新(例如,实际上没有数据更改) 之前进行任何表访问(例如记录) 隐藏复杂性或去甲化作用 等等 在问题marc_s(谁知道他的SQL知识)说不要使用它。这与我的想法有所不同(我也认为自己在SQL方面有些能力)。 我可能会遗漏一些东西(随意指出显而易见的地方),但是你们在那里的人们怎么想? 注意:已经有好几年了,因为我现在不使用SQLDataAdapter,所以看到了此错误。 在评论和问题之后进行编辑: 编辑:更多的想法... 我们有多个客户端:一个可以使用C#SQLDataAdaptor,另一个可以使用Java的nHibernate。这些可能会以不同的方式受到影响SET NOCOUNT ON。 如果您将存储的procs当作方法,那么以某种方式处理某些内部处理以达到您自己的目的是不好的形式(反模式)。 编辑2:触发打破nHibernate问题,SET NOCOUNT ON无法设置在哪里 (不,它不是this的重复) 编辑3:还有更多信息,多亏了我的MVP同事 KB 240882,导致在SQL 2000及更早版本上断开连接的问题 性能提升演示 编辑4:2011年5月13日 如果未指定,是否也会破坏Linq 2 SQL? 编辑5:2011年6月14日 …

24
SQL中是否有“ LIKE”和“ IN”的组合?
Наэтотвопросестьответына 堆栈溢出нарусском:СуществуетликомбинацияоператоровLIKEиINвусловиизапроса? 在SQL I中,(不幸的)我经常不得不使用“ LIKE”条件,因为数据库违反了几乎所有规范化规则。我现在无法更改。但这与问题无关。 此外,我经常使用条件WHERE something in (1,1,2,3,5,8,13,21)来提高SQL语句的可读性和灵活性。 有没有可能在不编写复杂的子选择的情况下将这两件事结合起来的方法? 我想要一些简单WHERE something LIKE ('bla%', '%foo%', 'batz%')而不是这样的东西: WHERE something LIKE 'bla%' OR something LIKE '%foo%' OR something LIKE 'batz%' 我在这里使用SQl Server和Oracle,但是我很感兴趣是否可以在任何RDBMS中实现。
340 sql  sql-server  oracle  tsql  plsql 

11
SQL查找列中不同值的数量
我可以通过以下方式选择列中的所有不同值: SELECT DISTINCT column_name FROM table_name; SELECT column_name FROM table_name GROUP BY column_name; 但是,如何从该查询中获取行数?是否需要子查询?
339 sql  distinct 



17
使用实体框架将更改保存到SQL Server数据库时,一个或多个实体的验证失败
我想将“编辑”保存到数据库,并且在ASP.NET MVC 3 / C#中使用“实体框架”代码优先,但出现错误。在我的Event类中,我有DateTime和TimeSpan数据类型,但是在我的数据库中,我分别有Date和time。这可能是原因吗?将更改保存到数据库之前,如何在代码中强制转换为适当的数据类型。 public class Event { public int EventId { get; set; } public int CategoryId { get; set; } public int PlaceId { get; set; } public string Title { get; set; } public decimal Price { get; set; } public DateTime EventDate { get; set; …

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.