Sql server 2008 从SQL Server中的重复值中选择第一条记录
我有一个疑问:Sql server 2008 从SQL Server中的重复值中选择第一条记录,sql-server-2008,duplicate-removal,distinct-values,Sql Server 2008,Duplicate Removal,Distinct Values,我有一个疑问: Select DFC_NOMBRE_CAMPO, DFC_TITULO, TDT_DATO_MOTOR, DFC_LONGITUD FROM MEM_DEFINICIONES_CAMPOS JOIN MEM_TIPOS_DATOS ON DFC_TDT_CODIGO = TDT_CODIGO WHERE DFC_ALMACENAR_BASEDATOS = 'S' ORDER BY DFC_NOMBRE_CAMPO ASC, DFC_LONGITUD DESC 结果是,给我重复
Select DFC_NOMBRE_CAMPO, DFC_TITULO, TDT_DATO_MOTOR, DFC_LONGITUD
FROM MEM_DEFINICIONES_CAMPOS JOIN MEM_TIPOS_DATOS ON DFC_TDT_CODIGO = TDT_CODIGO
WHERE DFC_ALMACENAR_BASEDATOS = 'S'
ORDER BY DFC_NOMBRE_CAMPO ASC, DFC_LONGITUD DESC
结果是,给我重复的值:
DFC_NOMBRE_CAMPO DFC_TITULO TDT_DATO_MOTOR DFC_LONGITUD
-------------------------------------------------- -------------------------------------------------- -------------------- ---------------------------------------
CodigoRespuesta Cod. Respuesta Varchar 3
CodigoRespuesta Cod. Resp. Numeric 3
CodigoRespuesta Cod Respuesta Numeric 3
CodigoTransaccion NULL Numeric 2
CodigoTransaccion Codigo Transaccion Numeric 2
CodigoTransaccion Codigo Transaccion Numeric 2
Estado Estado Numeric 2
FechaHora Fecha Varchar 14
FechaHora Fecha Varchar 14
FechaHora Fecha Varchar 14
NUT NUT Numeric 9
NUT NUT Numeric 8
NUT NUT Numeric 8
如何仅从每个DFC_NOMBRE_CAMPO集团获得firs记录。像这样:
DFC_NOMBRE_CAMPO DFC_TITULO TDT_DATO_MOTOR DFC_LONGITUD
-------------------------------------------------- -------------------------------------------------- -------------------- ---------------------------------------
CodigoRespuesta Cod. Respuesta Varchar 3
Estado Estado Numeric 2
FechaHora Fecha Varchar 14
NUT NUT Numeric 9
试试这个:
;
WITH CTE AS
(
SELECT DFC_NOMBRE_CAMPO,
DFC_TITULO,
TDT_DATO_MOTOR,
DFC_LONGITUD,
ROW_NUMBER() OVER(
PARTITION BY DFC_NOMBRE_CAMPO ORDER BY DFC_NOMBRE_CAMPO ASC,
DFC_LONGITUD DESC
) Rn
FROM MEM_DEFINICIONES_CAMPOS
JOIN MEM_TIPOS_DATOS
ON DFC_TDT_CODIGO = TDT_CODIGO
WHERE DFC_ALMACENAR_BASEDATOS = 'S'
)
SELECT *
FROM CTE
WHERE Rn = 1
从选择的DFC_NOMBRE_CAMPO、DFC_Titolo、TDT_DATO_电机、DFC_LONGITUD中选择DFC_NOMBRE_CAMPO、DFC_Titolo、TDT_DATO_电机、DFC_LONGITUD,按DFC_NOMBRE_CAMPO划分的行数按DFC_NOMBRE_CAMPO ASC Rn从MEM_Definitiones_CAMPOS加入DFC_TDT_CODIGO=TDT_CODIGO上的MEM_TIPOS_数据,其中DFC_ALMACENAR_BASEDATOS='S'作为CTE,其中Rn=1