Tag: sql

SQL Server查询 – 用DISTINCTselectCOUNT(*)

在SQL Server 2005中,我有一个表cm_production,列出了所有已投入生产的代码。 该表有一个ticket_number,program_type和程序名和push_number连同其他一些列。 目标:按程序types和推送号码统计所有的DISTINCT程序名称 我到目前为止是: SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] FROM cm_production WHERE push_number=@push_number GROUP BY program_type 这让我在那里,但它计数所有的程序名称,而不是独特的(我不希望它在该查询中)。 我想我只是不能包装我的头如何告诉它只计算不同的程序名称,而不select它们。 或者其他的东西。

使用电子邮件地址作为主键?

与自动递增数字相比,电子邮件地址是不是主要的候选人? 我们的networking应用程序需要电子邮件地址在系统中是唯一的。 所以,我想使用电子邮件地址作为主键。 但是我的同事build议string比较比整数比较慢。 是不是使用电子邮件作为主键的正当理由? 我们正在使用PostgreSQL 。

在SQL Server Management Studio中的表编辑之后保存更改

如果我想保存表中以前保存在SQL Server Management Studio中的任何更改(表中没有数据),则会收到一条错误消息: 保存更改是不允许的。 您所做的更改需要删除并重新创build以下表格。 您要么对无法重新创build的表进行更改,要么已启用“禁止保存需要重新创build表的更改”选项。 什么可以防止表容易编辑? 或者,是SQL Server Management Studio需要重新创build表进行编辑的常用方法吗? 这是什么 – 这个“选项防止保存更改” ?

真实的例子,在SQL中何时使用OUTER / CROSS APPLY

我一直在和一位同事一起研究CROSS / OUTER APPLY ,我们正在努力寻找使用它们的真实例子。 我花了相当多的时间看我什么时候应该使用内部join交叉应用? 和谷歌search,但主要(唯一)的例子似乎很奇怪(使用表中的行数来确定从另一个表中select多less行)。 我认为这种情况可能会从OUTER APPLY受益: 联系人表(每个联系人包含1条logging)通讯条目表(每个联系人可包含n个电话,传真,电子邮件) 但是使用子查询,公用表expression式,带RANK()和OUTER APPLY OUTER JOIN似乎都是一样的。 我猜这意味着这种情况不适用于APPLY 。 请分享一些真实生活的例子,并帮助解释function!

MySQL:事务与locking表

我对事务与locking表有点混淆,以确保数据库的完整性,并确保SELECT和UPDATE保持同步,没有其他连接干扰它。 我需要: SELECT * FROM table WHERE (…) LIMIT 1 if (condition passes) { // Update row I got from the select UPDATE table SET column = "value" WHERE (…) … other logic (including INSERT some data) … } 我需要确保没有其他查询会干扰和执行相同的SELECT (在连接完成更新行之前读取“旧值”。 我知道我可以默认LOCK TABLES table ,以确保一次只有一个连接正在做这件事,当我完成时解锁它,但这似乎是矫枉过正。 在一个事务中包装会做同样的事情(确保没有其他连接尝试相同的过程,而另一个正在处理)? 或者将一个SELECT … FOR UPDATE或SELECT … LOCK IN SHARE MODE更好?

如何在不复制数据的情况下创buildOracle表的副本?

我知道这个说法: create table xyz_new as select * from xyz; 哪个副本的结构和数据,但如果我只是想要的结构呢?

要求在第三个表格中将两个表格与他们的FK结合在一起

所以基本上我正在跟着一个教程问题,问我下面。 我不太确定如何连接2个不包含其他FK的表,它们(即它们的FK)都位于第3个表中。 我能得到一些帮助/解释吗? 我的答案 SELECT Forest.Fo_name, Species.Sp_name, Species.Sp_woodtype FROM Forest INNER JOIN Species ON Tree.Tr_species=Tree.Tr_forest WHERE Fo_loc='ARTIC' ORDER BY Fo_name, Sp_name “对于编号为”ARTIC“的地区的森林,列出森林名称和物种名称以及物种的木材types,消除任何重复,并按森林名称和物种名称命令输出” 物种表 +————–+——————+——+——————————–+ | Field | Type | Key | Glossary | +————–+——————+——+——————————–+ | sp_name | C(10) | PK | Species Name | | sp_woodtype | C(10) | | Wood Yielded by tree | […]

SQL Server SELECT到现有表中

我试图从一个表中select一些字段,并从存储过程中插入到现有的表中。 这是我正在尝试的: SELECT col1, col2 INTO dbo.TableTwo FROM dbo.TableOne WHERE col3 LIKE @search_key 我认为select into是临时表,这就是为什么我得到一个dbo.TableTwo已经存在的错误。 如何从dbo.TableOne插入多行到dbo.TableTwo ?

如何在PostgreSQL中设置自动增量主键?

我在PostgreSQL有22列的表,我想添加一个自动增量主键。 我试图创build一个名为BIGSERIALtypes的id列,但是pgadmin回应了一个错误: ERROR: sequence must have same owner as table it is linked to. 有谁知道如何解决这个问题? 如何在PostgreSQL中添加一个自动递增的主键而不重新重新创build表?

如何select一个表中不存在于另一个表中的所有logging?

table1(id,名字) 表2(id,名称) 查询: SELECT name FROM table2 — that are not in table1 already