Questions tagged «sql»

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

14
是否对SQL WHERE子句进行了短路评估?
是否在SQL WHERE子句中对布尔表达式进行短路求值 ? 例如: SELECT * FROM Table t WHERE @key IS NULL OR (@key IS NOT NULL AND @key = t.Key) 如果@key IS NULL的计算结果为true,则@key不是NOT AND @key = t.Key的计算结果吗? 如果否,为什么不呢? 如果是,是否可以保证?它是ANSI SQL的一部分还是特定于数据库的? 如果数据库特定,SqlServer?甲骨文?MySQL的?

4
如何使用NuoDB在Ruby On Rails中手动执行SQL命令
我正在尝试手动执行SQL命令,以便可以访问NuoDB中的过程。 我正在使用Ruby on Rails,并且正在使用以下命令: ActiveRecord::Base.connection.execute("SQL query") “ SQL查询”可以是任何SQL命令。 例如,我有一个名为“ Feedback”的表,执行命令时: ActiveRecord::Base.connection.execute("SELECT `feedbacks`.* FROM `feedbacks`") 这只会返回“ true”响应,而不是向我发送所有请求的数据。 这是Rails Console上的输出是: SQL (0.4ms) SELECT `feedbacks`.* FROM `feedbacks` => true 我想用它来调用NuoDB中的存储过程,但是在调用过程时,这也会返回“ true”响应。 无论如何,我可以执行SQL命令并获取请求的数据,而不是获得“真实”响应吗?

4
如何使用ID联接多个SQL表?
我要加入4个不同的表。这些表的结构如下: TableA - aID | nameA | dID TableB - bID | nameB | cID | aID TableC - cID | nameC | date TableD - dID | nameD 从表A开始,我了解如何使用b连接表a和c,因为b具有这些表的主键。我也希望能够在TableA上加入表TableD。下面是我的SQL语句,该语句首先连接表A和B,然后将其连接到C: SELECT TableA.*, TableB.*, TableC.* FROM (TableB INNER JOIN TableA ON TableB.aID= TableA.aID) INNER JOIN TableC ON(TableB.cID= Tablec.cID) WHERE (DATE(TableC.date)=date(now())) 当我尝试添加另一个联接以包括D时,出现错误,提示“ …
141 mysql  sql  join 

3
选择陈述中的案例
我有一个带有CASEfrom 的SQL语句,但SELECT我做对了。你们能给我展示一个案例的例子,CASE其中案例是条件,而结果来自案例。例如: Select xxx, yyy case : desc case when bbb then 'blackberry'; when sss then 'samsung'; end from (select ???? ..... 结果显示在哪里 name age handphone xxx1 yyy1 blackberry xxx2 yyy2 blackberry
141 sql  sql-server  case 

26
在单个查询中计算空值和非空值
我有桌子 create table us ( a number ); 现在我有类似的数据: a 1 2 3 4 null null null 8 9 现在,我需要一个查询来计算a列中的空值和非空值
141 sql 

5
在Oracle SQL中比较日期
我试图显示1994年6月20日之后的雇员人数,但是我收到一个错误消息,说“ JUN”无效,请帮忙,谢谢! Select employee_id, count(*) From Employee Where to_char(employee_date_hired, 'DD-MON-YY') > 31-DEC-95;
141 sql  oracle 


18
如何调试PDO数据库查询?
在转向PDO之前,我通过连接字符串在PHP中创建了SQL查询。如果出现数据库语法错误,我可以回显最终的SQL查询字符串,然后在数据库中自己尝试,然后对其进行调整,直到修复错误,然后将其重新放入代码中。 预先准备的PDO语句更快,更好,更安全,但有一件令我困扰的事情:在将最终查询发送到数据库时,我再也看不到。当我在Apache日志或自定义日志文件中收到有关语法的错误时(我将错误记录在一个catch块内),我看不到导致它们的查询。 有没有办法捕获由PDO发送到数据库的完整SQL查询并将其记录到文件中?
140 php  sql  pdo 


7
Java的SQL解析器库
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 是否存在用于解析SQL语句的开源Java库? 如果可能,它应该具有足够的可自定义性或灵活性,以能够解析(或至少忽略)特定于供应商的语法(例如Oracle表空间定义或MySQL的LIMIT子句)。 如果不是,严格遵守SQL标准也是可以的。 更新:我需要两件事: 提供到非SQL数据库的SQL接口(映射到内部API调用) 在将SQL转到实际数据库(例如Oracle)之前重写SQL
140 java  sql  parsing 

10
如何使用C#执行.SQL脚本文件
我确定这个问题已经回答了,但是我无法使用搜索工具找到答案。 使用C#,我想运行一个.sql文件。sql文件包含多个sql语句,其中一些语句分成多行。我尝试读取文件,并尝试使用ODP.NET执行文件...但是,我认为ExecuteNonQuery并非真正旨在执行此操作。 因此,我尝试通过产生一个进程来使用sqlplus ...但是,除非我在UseShellExecute设置为true的情况下产生该进程,否则sqlplus会挂起并且永远不会退出。这是不起作用的代码。 Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = "sqlplus"; p.StartInfo.Arguments = string.Format("xx/xx@{0} @{1}", in_database, s); p.StartInfo.CreateNoWindow = true; bool started = p.Start(); p.WaitForExit(); WaitForExit永远不会返回...。除非将UseShellExecute设置为true。UseShellExecute的副作用是您无法捕获重定向的输出。
140 c#  sql  oracle  scripting 

5
SQL查询今天的日期减去两个月
我想在表中选择所有记录,这些记录的输入日期早于2个月。 知道我该怎么做吗? 我还没有尝试过任何东西,但是我在这一点上: SELECT COUNT(1) FROM FB WHERE Dte > GETDATE()
140 sql  sql-server 

10
获取每组分组结果的前n条记录
以下是最简单的示例,尽管任何解决方案都应能够扩展到需要许多n个顶级结果的地方: 给定下面的表格,其中包含“人员”,“组”和“年龄”列,您将如何获得每个组中年龄最大的2个人?(组内的关系不应产生更多结果,而应按字母顺序给出前2个) + -------- + ------- + ----- + | 人 集团| 年龄| + -------- + ------- + ----- + | 鲍勃| 1 | 32 | | 吉尔| 1 | 34 | | 肖恩| 1 | 42 | | 杰克 2 | 29 | | 保罗| 2 | 36 | …

3
如何获取Postgres中两个字段的MIN()?
假设我有一个这样的表: name | score_a | score_b -----+---------+-------- Joe | 100 | 24 Sam | 96 | 438 Bob | 76 | 101 ... | ... | ... 我想选择最小的score_a和score_b。换句话说,类似: SELECT name, MIN(score_a, score_b) FROM table 结果当然是: name | min -----+----- Joe | 24 Sam | 96 Bob | 76 ... | …
140 sql  postgresql  min 

9
我可以在JOIN条件下使用CASE语句吗?
下图是Microsoft SQL Server 2008 R2系统视图的一部分。从图像中我们可以看到sys.partitions和之间的关系sys.allocation_units取决于的值sys.allocation_units.type。因此,要将他们加入一起,我会写类似以下内容: SELECT * FROM sys.indexes i JOIN sys.partitions p ON i.index_id = p.index_id JOIN sys.allocation_units a ON CASE WHEN a.type IN (1, 3) THEN a.container_id = p.hobt_id WHEN a.type IN (2) THEN a.container_id = p.partition_id END 但是上面的代码给出了语法错误。我想那是因为CASE声明。有人可以帮忙解释一下吗? 添加错误消息: 消息102,级别15,状态1,第6行'='附近的语法不正确。
140 sql  sql-server  join  case 

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.