在SQLServer2005中设置和重置日期格式

有没有办法查询SQLServer2005当前与T-SQL一起使用的日期格式 我有一个应用程序,它读取预生成的INSERT语句并对数据库执行它们。为了使要插入的数据独立于区域性,我存储不变区域性中表示的日期时间值(月/日/年…)。数据库服务器可能在不同的语言环境下运行,具体取决于系统语言环境(可能使用天/月/年),因此插入可能会崩溃,因为无法解析日期时间 我知道T-SQL中有“SET LANGUAGE”和“SET DATEFORMAT”语句来设置要使用的语言环境。 我不想让这些更改成为永久性的(它

SQL视图是否应始终处于1NF中?

SQL视图是一个全局逻辑表,可以持久化,也可以不持久化。但它仍然是一张桌子。因此,视图是否应始终遵循第一范式(1NF)?i、 e.没有重复的行,只有标量类型,没有从上到下或从左到右的顺序,等等。那么更高的范式呢 对我来说,我的应用程序“使用”存储过程的结果,我的视图被SQL查询“使用”,这两种用法是相互排斥的(即,我不使用SQL查询存储过程的结果集,我的应用程序不包含SQL代码)。我见过其他人使用视图将一列中的多个值“串联”成一行,通常采用逗号分隔的格式。在SQL查询中针对此类列编写谓词需要类似

MySQL工作日/周末计数-第二部分

我之前已经发布过这方面的内容,这有助于提供以下SQL: SELECT fname, MONTH( eventDate ) , IF( WEEKDAY( eventDate ) <5, 'weekday', 'weekend' ) AS DAY , COUNT( * ) FROM eventcal AS e LEFT JOIN users AS u ON e.primary = u.username GROUP BY fname, MONTH( eventDate ) , IF(

Sql 如何一次更新跑步平衡?

我有一个临时表,我们称之为发票,定义为 create table (id int identity(1, 1), billed money, credited money, balance money) 我有以下数据 Billed Credited 140.00 20.00 60.00 20.00 -20.00 我想用运行平衡更新平衡列。以便正确更新“余额”列。余额基本上是账单-贷记,但必须考虑到前一行的账户 在我的例子中,

Sql 在WordPress中删除超过X天的帖子的查询

我开了一个博客,社区可以发布对时间敏感的社区链接(体育成绩等)。一段时间后,这些帖子不再有用,所以我想通过MySQL查询批量删除它们,但我不知道如何删除。我想完全删除这些帖子不仅仅是从wp_posts表中删除,对吗?每个岗位都有其他工作台,对吗 我尝试过几个自动或批量删除插件,但它们有一半的时间都不起作用 请问,您能否提供一个MySQL查询来从所有相关表中删除帖子及其超过X天的内容 先谢谢你 --尼克Wordpress在其法典中公布了其数据库结构 可能重复的

Sql 请求不是由文本决定的

错在哪里 如果请求硬编码的“test”而不是@edit.text,则成功,但如果使用变量,则请求失败 require 'sqlite3' Shoes.app do db = SQLite3::Database.new("test.db") db.execute("create table t1 ( one VARCHAR(30), two INTEGER )") db.execute("insert into t1 ( one, two ) values ('test', 55)

Sql 在查询中未找到匹配项时,如何显示默认值?

当没有从查询中获取数据时,我想显示一条默认消息 比如说 让我们回答一个问题 从id=100的员工中选择empname 如果没有与此搜索匹配的数据,我希望得到不可用的结果,否则应显示所需的结果 那么我应该如何编写SQL查询来实现这一点呢 我正在使用Oracle 10g SELECT COALESCE((SELECT empname FROM employee WHERE id = 100), 'Unavailable') FROM DUAL; 您必须将SELECT包装到另一个SELECT中,

Sql 使用IF/ELSE IF语句时出现奇数错误

我试图创建一个依赖于场景参数值的临时表,并使用以下IF语句,但出现以下错误: IF @indexName = 'A' begin select top 400 * into #temp from #pretemp order by EMRev desc end ELSE IF @indexName = 'B' begin select top 75 * into #temp from #pretemp order by EMRev desc end

Sql 用于在更新中切换布尔值的JPA查询

SQL版本工作正常,我可以切换名为bar的布尔值 mysql> update Foo set bar = ! bar WHERE id IN (1, 7, 13); Query OK, 3 rows affected (0.02 sec) 有没有一个简单的JPA查询等价物,我试过了 final Set<Integer> ids; final Query query = em.createQuery("UPDATE " + Foo.class.getName()

SQL中的嵌套聚合函数Max(Avg())

我正在用SQL编写此查询: select MAX(AVG(salary) ) from employees group by department_id; 首先,我将按部门id获取组,但接下来会发生什么?最有可能的情况是,根据您的RDBMS,这将需要一个子查询 select max(AveragesByDept.avgSalary) from ( select avgSalary=avg(salary) from employees group by depart

Sql 条件连接的最有效实现

在T-SQL中,我有一个视图,其中包括一个连接: inner join db..address addr on addr.town = f.town 我需要以某种方式修改这个连接,如果f.town是一个特定的值(比如说“abc”),它还包括另一个值(即“abcd”)。在所有其他情况下,它只取f.town的值。像这样: inner join db..address addr on addr.town in ("abc", "abcd") 我尝试过这样做,但没有成功: inner join db

Oracle SQL语句中条件的顺序重要吗?

我的一些同事根据他们对数据库的理解和索引的存在,对Oracle SQL语句中的条件进行排序 否定了序列的重要性,而有一条评论与PROLOG的观点不一致 好的,所以ANSI SQL实际上是声明性的,序列是无关的Oracle 11怎么样?除非您仍在使用旧的基于规则的优化器(而且由于您已将问题标记为oracle11g,所以您肯定不会),否则重新排序WHERE子句几乎没有什么区别 请注意,我使用这个术语实际上是因为——根据——如果有多个操作具有相同的估计成本,它们可能仍然会生成不同的执行计划。但是在实践

多次实例化SQL Server CLR库存储过程静态对象

为了简单起见,以下是我正在尝试做的一个例子: 我的CLR库是用C#编写的(它是线程安全的,尽管我没有在示例中显示它): 编译后,我将其导入我的SQL Server(使用Microsoft SQL Server Management Studio): 我导入存储过程: CREATE PROCEDURE sp_Send (@DestinationName nvarchar(256), @MessageString nvarchar(max)) AS EXTERNAL NAME MyDLL.[NS.M

SQL查询,用于计算术语出现时出现的次数

我需要计算这个词出现的次数,如果它确实出现了 我有一张如下所示的桌子: document | term a0000001 | n/a a0000001 | for a0000001 | nothing a0000002 | lux a0000002 | the a0000002 | censoring a0000003 | the a0000003 | the a0000003 | and document | the a000001 | 0 a000002 | 1 a000003 |

Access在第一次运行后删除查询的SQL内容

我正在使用Microsoft Access 2010,数据库已损坏。数据库与服务器上的后端分离。我将所有前端对象(关系等)导入到新的前端,并重新链接所有表。大多数事情都很好,这就是我以前做的。然而,我有一个问题给我带来了麻烦 我只能运行一次查询。运行查询后,SQL语句将自动从该查询中删除。我使用过compact和repair以及其他各种保存选项,但我只能让SQL语句保持一次。我可以多次打开和关闭数据库,我可以在SQL视图中多次打开和关闭查询,但一旦运行查询,SQL语句就会消失 此查询在发生损坏之

SQL序列的编号不正确

这是我在Oracle SQL Developer中输入的SQL。然而,第一个德普诺以20分出局。为什么呢?我相信这个假设的结果是10。你只需运行它正在运行的序列 第一个参数从开始,然后您可以得到以下输出: DROP TABLE DEPT; DROP SEQUENCE deptseq; CREATE TABLE DEPT ( DEPTNO NUMBER(2) NOT NULL, DNAME VARCHAR2(14), LOC

SQL Server探查器中的CPU与持续时间

关于这篇文章,我读到: 数据列 列号 描述 持续时间 13 事件花费的时间量(以毫秒为单位)。 CPU 18 事件使用的CPU时间量(以毫秒为单位)。 最可能发生的情况是,SQL server将SELECT语句拆分为在多核CPU上的多个线程上运行。根据返回的时间判断,我敢猜测您的服务器中有一个四核CPU 例如:如果CPU1、Cpu2和CPU3都需要750ms,CPU4需要400ms,那么总共需要2650ms,但总持续时间只有750ms 您需要了解操作系统如何工作,为不同的进程提供时间片。这里是一

比较SQL Server中GETDATE()和Datetime2之间的差异

我想检查当前时间(GETDATE())和StartTime)之间的时差 这就是我到目前为止所做的: SELECT CheckedOut, GETDATE() AS CurrentDateTime, StartTime FROM TimeRecordModels WHERE CheckedOut = 0; 另外,如果差异大于15小时,我想使boolCheckedOut为真,然后将列名EndTime设置为GETDATE()使用该函数 SELECT CheckedOu

Sql 如何优化对大型远程表的写入?

我正在使用一组服务器,这些服务器都会记录通常一天发生多次的事件,然后调用存储过程将这些记录复制到中央远程服务器上的匹配表中。该存储过程的关键部分如下所示: 首先,因为这些事件需要几分钟的时间,所以在复制这些事件时,它们有时不会完成,并且中央服务器中的某些记录在某些列中具有空值。存储过程将更新上次发生的记录: UPDATE r SET r.ToUpdateA = l.ToUpdateA, r.ToUpdateB = l.ToUpdateB FROM LocalTable l INNER JOIN

Sql 我可以在Express Edition中重用localdb的数据库文件吗

我将构建一个小型应用程序,并喜欢使用SQLServerLocalDB,但我对一些要点感到困惑 当我启动我的实例并在主PC中共享它并连接到我的数据库时,我的本地网络上的任何人都可以看到这个实例吗 如果是,那么他可以连接到它 如果是,如果我关闭了我的应用程序,实例是否仍在运行,直到他结束工作 如果没有办法解决这个问题 我认为使用LocalDB实例直到face case,让网络中的多个用户将该数据库从LocalDB切换到普通的Express edition,并像平常一样使用它 因此,我可以随时在S

Sql 无法使用sequence.nextvalue按顺序插入表的id列

我使用Oracle作为数据库,我有两个表 TableOne-->tableOneId(Primary key) TableTwo-->tableTwoId(Primary key),tableOneId(Foreign Key),City 现在TableOne中有很多记录,对于TableOne中的每条记录,我尝试使用下面的查询在表2中插入5个城市 insert into tableTwo (tableTwoId,tableOneId,City) select TableTwo_S

Sql 什么是数据库规范化和功能依赖性?

我正在阅读a,我很难理解以下内容: 函数依赖性表示,如果两个元组对于属性A1、A2、…、An具有相同的值,那么这两个元组对于属性B1、B2、…、Bn必须具有相同的值 函数依赖关系由箭头符号表示(→) 也就是说,X→Y、 其中X函数决定Y 以上两个是指什么?什么是“功能决定” 我可以有一个元组,其中A1、A2、A3相同,但B1、B2、B3不同。当关系中的一个属性唯一地确定另一个属性时,就会出现函数依赖关系。这可以写成a->B,这与声明“B在功能上依赖于a”相同 在列出员工特征(包括社会保险号(SS

Sql 使用XMLEXISTS的Oracle查询占用了太多时间

我正在尝试执行下面的查询,但是它运行的时间太长(超过20分钟),没有给出任何结果。当我删除XMLEXISTS条件时,它在几秒钟内获取了41000条记录。XMLEXISTS可能存在什么问题?我们如何改进执行时间 SELECT e.Entry_GUID FROM alertdocketnext.ENTRY e inner join alertdocketnext.ENTRY_PARTNERDEFINED_INFO ep on e.ENTRY_GUID = ep.ENTRY_

Sql 在多个组中选择重复项

使用下表: StoreId INT主键, 客户ID INT, StoreName VARCHAR 我需要一个select语句,它将告诉我是否有任何CustomerId具有重复的StoreName条目 例如,给定此数据: StoreId | CustomerId | StoreName 1 | 25 | "Store 6" 2 | 42 | "Downtown" 3 | 101 | "Store 22" 4

仅当该字段存在时才将字符串追加到SQL联接表

我有一个用户模型,与概要文件模型连接,创建一个连接表来保存属于每个模型的所有信息。我希望能够将字符串附加到列值的末尾,但仅当该字段存在时。这是我目前拥有的 User.joins(:profile).select('users.id, full_name AS name, concat(profiles.address1, profiles.address2) AS address,

sql中的连续时间间隔分组

假设数据结构的类型为 stock_name, action, start_date, end_date google, growing, 1, 2 google, growing, 2, 3 google, falling, 3, 4 google, growing, 4, 5 yahoo, growing, 1, 2 如何将其聚合以合并连续的时间间隔 输出如下所示: stock_name, action, start_date, end_date google, growing, 1, 3

Sql 使用?可选?连接多个表?条件并得到所有结果

使用SQL2008R2 我在完成表联接时遇到问题。我想我只是错过了一些简单的事情。我需要连接三个表(CMS、DB、Backups),并获得所有重叠项以及缺失项的完整列表。不幸的是,其中两个表没有简单的条件进行连接 条件: 1:每个表都可以有一行与其他表不匹配 2:备份连接到服务器名称和备份。保存集类似于DB.Instance\u名称或备份。保存集类似于“ALL” 3:CMS连接到服务器名称上,也连接到CMS。名称类似于DB.Name 正如你从我下面的查询结果中所看到的,我很接近,但不是很接近。我

Sql 消除嵌套视图

请帮助我优化嵌套视图。下面的查询中使用了两个视图,它们的性能非常慢 SELECT g.FID, a.ID,q.FID_ATTR AS UNITID from dbo.LINE AS g LEFT OUTER JOIN dbo.SECTION AS a ON g.FID_ATTR = a.FID LEFT OUTER JOIN dbo.V_UNITID as q on g.FID = q.FID CREATE view [dbo].[V_UNITID] as select a.FID,

Sql 提交前Oracle更改、更新和系统崩溃

在oracle sql语句中,我发出了三个update命令,然后是ALTER命令以添加列。提交查询前系统崩溃。update和alter语句是否会写入数据库?我的假设是只有alter语句会被写出来 Oracle数据库在每个DDL语句之前和之后隐式提交当前事务 如果在崩溃之前成功执行了ALTER语句,则会提交以前未提交的DMLs

Oracle SQL-引用通配符语句中的另一列

欢迎来到SO。请拿着这本书,读一读,然后贴一张。这样你会得到更好的回应。谢谢。你试过什么了?假设这两列包含VARCHAR2数据或类似数据,那么应该像中的substr(diagcode,3)=substr(prospective,3)一样简单。mathguy是对的。如果您坚持它是一个like,那么diagcodelike substr(推定,3)| |'%'也应该起作用。如果字符串短于3个字符,请小心。在未来,你将被期望写出更好的问题。谢谢大家。我完全忘记了substr函数。

Sql 基于数据类型筛选表中的列

表名称:表1 Name DataType PK_tablekey INT FK_Table2Keu INT CreateTime datetime DateField1 datetime DateField2 datetime Createdby NVARCHAR(32) Name1 NVARCHAR(32) Flag BIT Value1

比较3个SQL表

我试图比较3个表,其中1个表是基础表 这是我的3个表,其中表1是基础表,其他两个是相互比较的 Table1 ID | ChargeItem ----------------- 5055 | Item1 5056 | Item2 5057 | Item3 5058 | Item4 5059 | Item5 5060 | Item6 5061 | Item7 5062 | Item8 5063 | Item9 5064 | Item10 5065 | Item11 Table2

sqlzoo:从世界中选择:匹配名称和大写字母

我正在努力学习SQLZoo,并且已经相当陷入了“名称和资本匹配”的练习中。我们的想法是从“世界”数据库中列出首字母与其(国家)名称和首都相同的国家,但不包括首都与国家相同的国家。 我必须: SELECT name, capital FROM world WHERE LEFT(name,1)=LEFT(capital,1), name <> capital 选择名称、大写字母 来自世界 其中LEFT(name,1)=LEFT(大写,1),name capital 这甚至对应于答案页

Sql 我们可以在子查询中使用order by吗?如果不是,为什么有时可以使用top(n)order by?

我是一名入门级人员,试图学习更多关于SQL的知识 我有一个问题“我们可以在子查询中使用ORDERBY吗?”我确实查找了一些文章,上面说不,我们不能使用 但另一方面,我看到了在子查询中使用top(n)和orderby的示例: select c.CustomerId, c.OrderId from CustomerOrder c inner join ( select top 2 with TIES CustomerId, COUNT(distinct Ord

SQL";靠近'的语法不正确;如果';-无法解决问题

我无法摆脱“IF”附近的“错误语法” 使用begin和end对CASE和IF Else语句进行了多次尝试 第二行的第一个IF出现错误:“IF”附近的语法不正确 我错过了什么 谢谢你,约翰 select long查询的片段 CASE when (pt.PRE_POST_MODE = NULL) then /*Error ->*/IF (CONVERT(DATETIME, CONVERT(DATE, extra.END_DATE)) != null) begin

Sql 如何在历史记录表中找到正确的行

我有价格历史记录表: | StrartDat | ProductID | Price | EndDate| 产品目录: | ProductID | Name | quantity|...| 和订单表: | OrderID |ProductID | date|...| 现在我试图获取订单列表,但我得到了一个产品的两行,其中一行是旧价格,另一行是新价格(其中enddate为空) 我怎样才能避免这种情况,并获得订单的价格,一个产品在订单日期 我尝试了这种约束,但它不接受与enddate为空的价格

具有联接的SQL查询,但只需要来自联接表的最新记录

我有一个数据库,其中包含一个引擎表(EngineId、Make、Model、SerialNumber等)和一个包含引擎测试值的表(TestId、EngineId、Value1、Value2等) 我想从Engines表中选择所有记录以及最新的测试值(可能有多个测试记录,但我只想要最新的)。这看起来很简单,但由于某种原因,我不能完全理解SQL语法 我可以从下面这样的事情开始,但是我被卡住了 SELECT e.*, t.Value1, t.Value2 FROM Engine e left join

如何在SQL Server中使用命令行自动生成脚本?

在SQLServerManagementStudio中,有一个“生成和发布脚本向导”上下文菜单选项,可自动为表数据生成insert语句脚本 在我的例子中,我只能使用命令行访问数据库上的查询。这意味着我无法访问“生成和发布脚本向导” 是否可以使用纯SQL或T-SQL命令行实现类似的功能?这是一个基于系统视图的基本SQL构建插件: DECLARE @sqlinsert AS VARCHAR(MAX) = '' DECLARE @tbl AS VARCHAR(128)='dbo.mytable' S

Sql 按TRUNC划分的集团链(日期)

我有一个简单的表,上面有每小时的数据和值。我想计算每个月每日最大值的平均值。 一开始,这个问题似乎很直截了当: WITH daily_max AS ( SELECT TRUNC(the_date, 'DD') as my_day, MAX(value) AS value FROM my_data GROUP by TRUNC(the_date, 'DD') ) SELECT trunc(my_day, 'MM'), AVG(value) FROM daily_max GR

多对多关系和一对多关系的SQL命令是什么?

以下是我的样本: 如何列出属于建筑X的项目,其中类别为Y? 我不确定要找什么(是连接吗?内部还是外部?)。我想我通过谷歌找到答案的困难是因为我不知道如何恰当地表达这个问题。请提供帮助。关于的存在如何 select i.* from items i where exists (select 1 from building b where b.id = i.building_id and b.name = 'X' )

SQL查找更新了哪些表。

这可能是一个简单的问题,但我找不到答案。几个月前,我请求帮助进行一个确定所有更新表的查询。我能够让它工作,但速度很慢,而且只写入DBMS输出窗口。我的项目最终走向了另一个方向。现在我有了一个EXCEL VBA工作簿,它可以提取所有表,并查询每个表中与给定项目相关的更新。这是一样缓慢,但给我更多的工作。当它在表列表中运行时,它会查询更新计数大于零的表 我真正想要的是以某种方式在更短的时间内获得具有更新计数的表列表。例如,下面这样的查询将为我提供当前使用慢速VBA脚本构建的两列 Select dis

使用SQL在SQL中查找无效的XML/SQL字符

我有一个名为TableName的表,其中有一列字符 在字符列中,我有以下数据以及其他一些需要检查的数据: Apples 15 chocolate afternoon Joe & taffy @fternoon ^up (here) `til 我想要一个SQL脚本,它允许我在该列中查找对XML或SQL无效的任何字符。有点像一个patindex 所以我想用这个来展示这样的东西: 乔和塔菲,第5行,第4个字符 @下午,第6行,第1个字符 D'antonio,第452行,第2个字符 Ch@rl

Sql 要将要从中选择数据的表名作为表达式的查询?

我使用的是SQL Server版本12.2.9(我想是SQL Server 2014) 在SQL查询中,是否可以将要从中选择数据的一个或多个表名作为将在查询执行期间进行计算的表达式?例如,在以下伪代码中 SELECT * FROM MainTable AS mainTable, ( /* Expression here that returns a string (or what type do we return) denoting the other tabl