我正在使用SQL Server Management Studio 2012。我有一个包含数千行数据的表。许多行是重复的,我需要删除它们。每行都有一个唯一标识符[OwnerID],该标识符被设置为标识规范,标识增量为1。对于每一行,重复项位于以下列中:[FirstName]、[LastName]和[CompanyName]。
因此,我需要删除这3列中具有重复值组合的行。删除后,是否可以编写t-sql来将[OwnerID]中的身份规范重置为第一行从1开始,并以1为增量将值分配给其余行?
谢谢你的帮助。
我想在select SQL中使用ROW_NUMBER() OVER (PARTITION BY SOME_COLUMN_NAME Order By SOME_COLUMN_NAME)。
我同时使用了SQLServer和Oracle数据库。
这是否需要在数据库上启用“分区功能”?
更新:-我使用了多个版本: SQL Server2005、SQL Server2008 R2、Oracle11g
我已经使用EF4和SQL Server2005开发了我的网站,但当转移到临时站点时,发现他们使用的是SQL Server2000。
现在我收到这个错误,我认为它与SQL Server 2000有关:
Incorrect syntax near '('. 'row_number' is not a recognized function name.
有没有办法解决这个问题?
谢谢
这是一个有点开放式的问题,因此,任何填补我知识空白的信息都将不胜感激。
在执行从2000到2008的SQL Server升级时,升级顾问可能会发出以下警告:升级顾问检测到一个或多个用户定义的登录名与固定服务器角色的名称匹配。固定服务器角色名称在SQL server 2008中是保留的。在升级到SQL Server 2008之前重命名登录名。
我相信这是因为,例如,在sql server 2000数据库中登录'sysadmin‘将与2008年的固定服务器角色'sysadmin’发生冲突。
有没有一种方法可以安全地删除并重新创建这些登录,或者删除“sa”之类的登录是否会产生意想不到
我有一个在Postgresql上工作的SQL语句,它返回2列,按其他列排序:
select distinct on (title) gender_id, title
from persons
where account_id = 100
order by title, created_date
我需要更改SQL才能在SQL Server2008和Postgres上工作,但在SQL Server中我不能使用on子句,我该如何做?
我正在尝试对SQL Server中的一些数据进行分组。但是,不确定是否有查询可以做到这一点。以下是原始数据
Type Number Date Result
Car 6664441111 Feb 22 2016 IVR Detected
Car 6664441111 Feb 22 2016 Answered
Lab 5552221111 Feb 22 2016 No Answer
Lab 5552221111 Feb 22 2016 Hangup
Lab 5552221111
我用图片制作了一个文件,它的工作就像一个图片库。因此,当我返回到F12时,我希望看到文件中的先前记录。
如果光标到达文件的第一个记录,程序应该关闭。
实际上,它是在一个圆圈中旋转,它正在加载先前的记录,并且从不离开循环。
如何告诉程序在文件的第一次记录之后停止?
这里是我的SQL:
EXEC SQL
DECLARE C1 SCROLL CURSOR FOR SELECT * FROM FILE
WHERE [variables].....
ORDER BY ....
FOR FETCH ONLY;
EXEC SQL
OPE
我在一个项目中使用SAP HANA数据库。我尝试使用这个SQL查询来获取带有行号的值。但它给出了1作为所有行。
SELECT ROW_NUMBER() OVER (PARTITION BY "ItemCode") AS "ID", "ItemCode", "CommitedQty", "JobId", "WarehouseID"
FROM
(SELECT "ItemCode", SUM("CommitedQty") AS "Co
我有一个名为hotel的表,其中包含EmpId和它们相应的日期时间格式的签入/退出列。
现在,我希望表中的数据看起来像这样。
我尝试了以下简单的查询,并且它工作正常:
select EmpId, min([Check-in/out]) as Checkin, max([Check-in/out]) as Checkout
from [dbo].[hotel]
group by EmpId;
但是我想使用sql server中的pivot操作符来完成它。我尝试了以下查询,但这是不正确的:
select EmpId, Min([Check-in/out]) AS Checki
下面是我的Oracle SQL语句: select
ACCOUNTID as ACCOUNTID,
CREATEDDATE as CREATEDDATE,
OLDVALUE as OLDVALUE
from
accounthistory_n_dim
where
rowid in (select A.ROWID
from
(select
accountid,
row_number()
当我在SQL Server中上载我的表项目时,我看到使用Microsoft SQL Server Management Studio的行出现重复,如下面的示例:
ID Status Code
----------------------------------
144702 Completed Ok-Q8 AB
144702 Completed Ok-Q8 AB
我试着运行delete命令,但是我不能让它工作。我的目标是扫描所有的表ID,看看是否有一行具有相同的ID,然后删除其中一行,这样,最终将只有1行具有该ID
delete from
我有一个具有以下代码的存储过程:
BEGIN TRY
--BEGIN TRANSACTION @TranName
DECLARE @ID int
INSERT INTO [dbo].[a] ([Comment],[Type_Id],[CreatedBy])
VALUES ('test',1,2)
SET @ID = SCOPE_IDENTITY()
INSERT INTO [dbo].[b] ([Can_ID],[Com_ID],[Cal_ID],[CreatedBy])
VALUES (1,@ID,null,2)
我有一个SQL Server 2012表,用于存储客户在特定周内是否处于活跃状态。我想输出一个结果,该结果显示客户连续几周处于活动状态,以及开始周和结束周。我有以下代码,但这只给我一个客户活跃的总周数。有没有可能按顺序打破计数?任何帮助都是非常感谢的。
SELECT
ActiveYN
,MIN(StartWeek)
,MAX(StartWeek)
,COUNT(*)
FROM TableA
GROUP BY ActiveYN
在SQL Server中将行值转换为列值我需要在SQL Server中将example Table1转换为Table2。其他解决方案为每个服务器值显示单独的列,导致每个服务器A、B、C和D分别有单独的列。相反,如果B是唯一的服务器,我需要它显示在列Server1中,而不是列ServerB中,如建议的解决方案所示。如有任何帮助或指导,将不胜感激:
TABLE1
Room | Server
1 | A
2 | B
3 | C
4 | A
4 | B
5 | C
6 | A
6 | B
6 | C
7
我希望有一个相当于PostgreSQL distinct on ()的Sql Server
a b
----
1 1
1 2
2 2
2 1
3 3
select distinct on (a) *
from my_table
a b
----
1 1
2 2
3 3
我可以在SQL Server中执行以下操作:
select a, min(b) -- or max it does not matter
from my_table
group by a
但是在有许多列的情况下,查询是即席查询,这样做非常繁琐。有什么简单的方法可以做到吗?