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