标签: sql

如何列出表中的所有列?

对于各种流行的数据库系统,如何列出表中的所有列?

mysql sql database sql-server oracle

218
推荐指数
10
解决办法
72万
查看次数

在SQL Server中查找重复的行

我有一个组织的SQL Server数据库,并且有许多重复的行.我想运行一个select语句来获取所有这些和dupes的数量,但也返回与每个组织关联的id.

声明如下:

SELECT     orgName, COUNT(*) AS dupes  
FROM         organizations  
GROUP BY orgName  
HAVING      (COUNT(*) > 1)
Run Code Online (Sandbox Code Playgroud)

将返回类似的东西

orgName        | dupes  
ABC Corp       | 7  
Foo Federation | 5  
Widget Company | 2 
Run Code Online (Sandbox Code Playgroud)

但我也想抓住他们的身份证.有没有办法做到这一点?也许就像一个

orgName        | dupeCount | id  
ABC Corp       | 1         | 34  
ABC Corp       | 2         | 5  
...  
Widget Company | 1         | 10  
Widget Company | 2         | 2  
Run Code Online (Sandbox Code Playgroud)

原因是还有一个单独的用户表链接到这些组织,我想统一它们(因此删除欺骗,以便用户链接到同一组织而不是欺骗组织).但我想手动分配,所以我不会搞砸任何东西,但我仍然需要一个声明返回所有欺骗组织的ID,以便我可以浏览用户列表.

sql sql-server duplicates

217
推荐指数
7
解决办法
52万
查看次数

如何在同一个表中将数据从一列复制到另一列?

对于SQL中表中的所有记录,是否可以将数据从A列复制到B列?

sql

215
推荐指数
3
解决办法
22万
查看次数

COUNT(*)与COUNT(1)对COUNT(pk):哪个更好?

我经常发现这三种变体:

SELECT COUNT(*) FROM Foo;
SELECT COUNT(1) FROM Foo;
SELECT COUNT(PrimaryKey) FROM Foo;
Run Code Online (Sandbox Code Playgroud)

据我所知,他们都做同样的事情,我发现自己在我的代码库中使用了三个.但是,我不喜欢以不同的方式做同样的事情.我应该坚持哪一个?他们中的任何一个比其他两个更好吗?

sql select count

214
推荐指数
5
解决办法
10万
查看次数

用于终止与数据库的所有连接的脚本(超过RESTRICTED_USER ROLLBACK)

我有一个开发数据库,​​经常从Visual Studio数据库项目(通过TFS自动构建)重新部署.

有时当我运行我的构建时,我收到此错误:

ALTER DATABASE failed because a lock could not be placed on database 'MyDB'. Try again later.  
ALTER DATABASE statement failed.  
Cannot drop database "MyDB" because it is currently in use.  
Run Code Online (Sandbox Code Playgroud)

我试过这个:

ALTER DATABASE MyDB SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE
Run Code Online (Sandbox Code Playgroud)

但我仍然无法删除数据库.(我的猜测是大多数开发人员都dbo可以访问.)

我可以手动运行SP_WHO并开始查杀连接,但我需要一种自动方式在自动构建中执行此操作.(虽然这次我的连接是我试图丢弃的数据库中唯一的连接.)

是否有一个脚本可以删除我的数据库,无论谁连接?

sql t-sql sql-server sql-server-2008 sql-server-2008-r2

214
推荐指数
4
解决办法
48万
查看次数

列出PostgreSQL中带索引的列

我想获得PostgreSQL中索引所在的列.

在MySQL中,您可以使用SHOW INDEXES FOR table并查看该Column_name列.

mysql> show indexes from foos;

+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name            | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| foos  |          0 | PRIMARY             |            1 | id          | A         |       19710 |     NULL | NULL   |      | BTREE      |         | 
| foos  |          0 | index_foos_on_email |            1 | email       | A         |       19710 |     NULL …
Run Code Online (Sandbox Code Playgroud)

sql postgresql indexing

213
推荐指数
13
解决办法
22万
查看次数

INSERT语句与FOREIGN KEY约束 - SQL Server冲突

我收到以下错误.请你帮助我好吗?

消息547,级别16,状态0,行1
INSERT语句与FOREIGN KEY约束"FK_Sup_Item_Sup_Item_Cat"冲突.冲突发生在数据库"dev_bo",表"dbo.Sup_Item_Cat"中.该语句已终止.

码:

insert into sup_item (supplier_id, sup_item_id, name, sup_item_cat_id, 
                      status_code, last_modified_user_id, last_modified_timestamp, client_id)   
values (10162425, 10, 'jaiso', '123123',
        'a', '12', '2010-12-12', '1062425')
Run Code Online (Sandbox Code Playgroud)

最后一列client_id导致错误.我试图将已存在的值dbo.Sup_Item_Cat放入列中,对应于sup_item ..但没有欢乐:-(

sql sql-server sql-server-2005 foreign-keys

213
推荐指数
8
解决办法
53万
查看次数

在Oracle中进行不区分大小写的搜索

LIKE和其他比较运算符=等的默认行为区分大小写.

是否有可能使它们不区分大小写?

sql oracle case-sensitive case-insensitive sql-like

213
推荐指数
5
解决办法
28万
查看次数

在SQL Server 2008中正确使用事务

我有2个命令,需要它们都正确执行或者没有执行.所以我认为我需要一个交易,但我不知道如何正确使用它.

以下脚本有什么问题?

BEGIN TRANSACTION [Tran1]

INSERT INTO [Test].[dbo].[T1]
    ([Title], [AVG])
VALUES ('Tidd130', 130), ('Tidd230', 230)

UPDATE [Test].[dbo].[T1]
  SET [Title] = N'az2' ,[AVG] = 1
  WHERE [dbo].[T1].[Title] = N'az'

COMMIT TRANSACTION [Tran1]
GO
Run Code Online (Sandbox Code Playgroud)

INSERT命令已执行但UPDATE命令有问题.如果其中任何一个命令执行错误,我如何实现它来回滚这两个命令?

sql t-sql database sql-server transactions

213
推荐指数
3
解决办法
24万
查看次数

在SQL Server中计算中值的函数

根据MSDN,Median不能作为Transact-SQL中的聚合函数使用.但是,我想知道是否可以创建此功能(使用Create Aggregate函数,用户定义函数或其他方法).

这样做的最佳方式(如果可能) - 允许在聚合查询中计算中值(假设数值数据类型)?

sql sql-server aggregate-functions median

212
推荐指数
6
解决办法
40万
查看次数