我有一个SQLITE3的问题。 我已经使用以下SQL脚本创build了2个表persons和orders : sqlite> create table Persons( P_Id int primary key, LastName varchar, FirstName varchar, Address varchar, City varchar ); sqlite> create table Orders( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, PRIMARY KEY (O_Id), FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) ); sqlite> insert into Orders values(1,77895,3); sqlite> select * from Orders; 1|77895|3 sqlite> […]
我需要做一个查询,并join一年的所有日子,但在我的分贝没有日历表。 谷歌后,我发现在PostgreSQL generate_series() 。 MySQL有类似的东西吗? 我的实际表格有这样的: date qty 1-1-11 3 1-1-11 4 4-1-11 2 6-1-11 5 但我的查询必须返回: 1-1-11 7 2-1-11 0 3-1-11 0 4-1-11 2 and so on ..
我正在使用postgres。 我想删除重复的行。 条件是,从一组重复行中的1个副本不会被删除。 即:如果有5个重复logging,则其中4个将被删除。
我只是遇到了一个奇怪的事情…我们的网站上有一些代码正在采取一个巨大的SQL语句,修改代码中的一些search和replace基于一些用户值,然后将其传递到SQL Server作为一个查询。 我认为这将是一个更清洁的参数化查询存储过程,用户的价值作为参数,但是当我仔细观察,我明白他们为什么可能会这样做…他们正在select的表是可变地依赖于那些用户值。 例如,在一种情况下,如果值是(“FOO”,“BAR”),查询将最终变成“SELECT * FROM FOO_BAR” 有没有一个简单明了的方法来做到这一点? 我所尝试的一切似乎都不够高雅。 编辑:当然,我可以dynamic生成存储过程中的SQL,并执行(bleh),但在那一刻,我想知道如果我已经获得了什么。 编辑2:以某种智能的方式重构表格名称,把它们全部放在一张表中,用不同的名字作为一个新的列,这将是一个很好的解决所有这些问题的方法,这是几个人直接指出的或暗指的。 可悲的是,在这种情况下,这不是一个选项。
你可以在Access中使用caseexpression式吗? 我想确定最大dateforms2列,但不断收到以下代码中的语法错误: CASE WHEN dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date] THEN dbo_tbl_property.LASTSERVICEDATE ELSE Contour_dates.[Last CP12 Date] END AS MaxDate
所有, 我有一个表中的三个字段定义了MySQL数据库版本5.0中存在的父子关系。 表名是tb_Tree,它有以下数据: Table Name: tb_Tree Id | ParentId | Name ——————– 1 | 0 | Fruits 2 | 0 | Vegetables 3 | 1 | Apple 4 | 1 | Orange 5 | 2 | Cabbage 6 | 2 | Eggplant 如果指定了ParentId,我该如何编写一个Query来获取所有的孩子。 请注意,给出的表格条目仅仅是样本数据,并且可以有更多的行。 Oracle有一个“CONNECT BY PRIOR”子句,但是我没有发现类似于MySQL的东西。 任何人都可以请指教? 谢谢
原始查询: SELECT * FROM AA FULL OUTERJOIN BB on (AA.C_ID = BB.C_ID); 如何转换上述查询以使其在Microsoft Access中兼容? 我假设: SELECT * FROM AA FULL LEFT JOIN BB ON (AA.C_ID = BB.C_ID); 在将第一个查询正确转换为与Access兼容的查询之前,我还没有处理“满”条件?
惊喜 – 这是在MySQL中完全有效的查询: select X, Y from someTable group by X 如果你在Oracle或SQL Server中试过这个查询,你会得到一个自然的错误信息: Column 'Y' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. 那么MySQL如何确定为每个X显示哪个Y? 它只是select一个。 从我所知道的情况来看,它只是find了它find的第一个Y. 其基本原理是,如果Y既不是一个聚合函数,也不是在group by子句中,那么在查询中指定“select Y”是没有意义的。 因此,我作为数据库引擎将返回任何我想要的,你会喜欢它。 甚至有一个MySQLconfiguration参数来closures这个“松动”。 http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by 这篇文章甚至提到了MySQL在这方面被ANSI-SQL不兼容的批评。 http://www.oreillynet.com/databases/blog/2007/05/debunking_group_by_myths.html 我的问题是: 为什么 MySQL这样devise? 他们违反ANSI-SQL的理由是什么?
一旦我花了几个小时在PHP/MySQL使用mysql_query()来debugging一个简单的SQL查询,才意识到我错过了表名的凑钱。 从那以后,我一直在围绕表名使用它。 但是,当我在SQLite/C++使用相同的,符号甚至不被识别。 这是否令人困惑,是否使用这个? 标准对使用它有什么意义? 另外,如果有人能告诉我什么时候使用引号,什么时候不使用引号,这将是有帮助的。 我的意思是围绕着价值和字段名称。
我有一个列DECIMAL(9,6)即它支持的值如999,123456。 但是当我插入123,4567这样的数据时,它变成123,456700 如何删除这些零?