Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择下一行_Sql_Sql Server_Tsql_Sql Server 2008 Express - Fatal编程技术网

Sql 选择下一行

Sql 选择下一行,sql,sql-server,tsql,sql-server-2008-express,Sql,Sql Server,Tsql,Sql Server 2008 Express,我想将当前行的两个文本字段与下一行的相同字段连接起来 所以如果桌子像 field1 field2 field3 text1 text3 order1 text2 text4 order1 我想这样做: if (field3.current_row = field3.next_row) SELECT field1 + getNextRow(field1) as "Concatenated Field" FROM table 这可能吗?您可以执行类似的操作: cr

我想将当前行的两个文本字段与下一行的相同字段连接起来

所以如果桌子像

field1  field2  field3

text1    text3  order1
text2    text4  order1
我想这样做:

if (field3.current_row = field3.next_row)
     SELECT field1 + getNextRow(field1) as "Concatenated Field" FROM table

这可能吗?

您可以执行类似的操作:

create table #temp
(
    field1 varchar(50),
    field2 varchar(50)
)

insert into #temp values ('text1', 'text3')
insert into #temp values ('text2', 'text4')

;with cte as
(
    select *, row_number()over(order by field1) as rownum
    from #temp
)
SELECT *
FROM 
(
    select c1.field1 + ' ' + (SELECT field1 FROM cte c2 WHERE c2.rownum = c1.rownum + 1) as ConcField
    from cte c1
) c
where c.concfield is not null

drop table #temp

您可以执行类似的操作:

create table #temp
(
    field1 varchar(50),
    field2 varchar(50)
)

insert into #temp values ('text1', 'text3')
insert into #temp values ('text2', 'text4')

;with cte as
(
    select *, row_number()over(order by field1) as rownum
    from #temp
)
SELECT *
FROM 
(
    select c1.field1 + ' ' + (SELECT field1 FROM cte c2 WHERE c2.rownum = c1.rownum + 1) as ConcField
    from cte c1
) c
where c.concfield is not null

drop table #temp

如果您已经在SQL Server 2012上,则可以执行以下操作:

SELECT field1 + lead(field1) over (order by field1) as "Concatenated Field"
from table

如果您已经在SQL Server 2012上,则可以执行以下操作:

SELECT field1 + lead(field1) over (order by field1) as "Concatenated Field"
from table

您需要某种方法来标识当前记录和下一个记录。如果您无法定义查找这些记录的标准,则无法回答此问题。您可以使用行号和三角形联接来完成此操作。请查看以下链接表中是否有ID列,或者只有field1和field2?@糟糕,如果两行中的ordernumber相同,那么我想连接。@Dan P,我确实有ID。您需要某种方法来标识当前记录和下一条记录。如果您无法定义查找这些记录的标准,则无法回答此问题。您可以使用行号和三角形联接来完成此操作。请查看以下链接表中是否有ID列,或者只有field1和field2?@糟糕,如果两行中的ordernumber相同,那么我想连接。@Dan P,我有ID。