首页 > 解决方案 > SQL如何显示每个id及其列的前1个值?

问题描述

嗨,我询问如何根据 id 和 step 的第一个值显示(例如(id 12345 step 0050_01_0100)和(22345 step 0040_02_0300))

例如:csv 文件

  ID        step

01234     0350_01_0700
01234     0350_01_0700
01234     0350_01_0700

12345     0050_01_0100
12345     0050_01_0100 
12345     0050_01_0100 
12345     0050_01_0200 
12345     0050_01_0200 
12345     0050_01_0300 
12345     0050_01_0300 
12345     0050_01_0400

22345     0040_02_0300
22345     0040_02_0300 
22345     0040_02_0400 
22345     0040_02_0500 
22345     0040_02_0600 
22345     0040_02_0700 
22345     0040_02_0700 
22345     0040_02_0700

15232     0350_01_0700

请问我怎样才能做到这一点?

预期产出

ID    STEP                  ID    step
12345     0050_01_0100     22345   0040_02_0300
12345     0050_01_0100     22345   0040_02_0300
12345     0050_01_0100  

我的 .

    Dim sql As New OleDbCommand("Select * from [" + csvFile + "] where STEP=(Select TOP 1 STEP FROM [" + csvFile + "]", connx)

 Dim dv2 As DataView = New DataView(dt1)

        dv2.RowFilter = "ID='" + e.Parameters + "'"

我的代码的结果

 ID           STEP
01234     0350_01_0700
01234     0350_01_0700
01234     0350_01_0700
15232     0350_01_0700

任何指导将不胜感激。提前致谢。

标签: sqlsql-servervb.netdevexpress

解决方案


使用ASPxGridView.FilterExpression属性基于条件运算符语法,这在我们的帮助文章中进行了描述:条件语言语法

通常,我建议用户启用内置过滤器控件,在 DataBound 事件中放置一个断点,并在创建所需的过滤器时检查将哪些值写入ASPxGridView.FilterExpression属性。

例子:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     gvMS.FilterExpression = ("[DocumentType] = 'Insurance Certificate'")
End Sub

ASPxGridView - 如何从过滤器生成器中获取过滤器表达式
ASPxGridView 控件提供了 FilterExpression 属性,该属性返回一个表示当前过滤器表达式的字符串。您可以在控件的服务器端 AfterPerformCallback 事件中获取此属性。

参考:
ASPxGridView - 如何以编程方式更改 FilterExpression 中的列过滤器 ASPxGridView - 如何获取 FilterExpression 属性的语法
ASPxGridView - 如何在 ASPxGridView 后面的代码中设置过滤器表达式
- 如何在运行时设置 FilterExpression
ASPxGridView - 如何应用运行时的过滤器表达式

希望这有帮助..


推荐阅读