SQL怎么根据部分条件查询满足条件的所有数据

SQL如何根据部分条件查询满足条件的所有数据
"select * from equipment where ID= '" + TextBox22.Text + "' and xuhao='"+TextBox1.Text+"' and。。。。。。";
假如表中有ID,xuhao,place,time,company等列,那我要根据任意列查询符合条件的信息,SQL语句该怎么写
------解决思路----------------------
用动态SQL实现,
逐个框判断是否有写,如有则tsql=tsql+" and [字段]='" + TextBox.Text + "' '
------解决思路----------------------
如果你确定那是NULL

那么还可以解决的
select * from equipment where ID= ISNULL('" + TextBox22.Text + "',ID) and xuhao=ISNULL('"+TextBox1.Text+"',xuhao) and

或者是用CASE判断为空再处理

但是,这样虽然方便却不符合查询规范

你还是拼接查询条件吧,不需要那个条件,那个就不带入查询,那样才效率
------解决思路----------------------
给你贴个我的业务,看看
		--定义动态SQL
Declare @SqlTxt NVarchar(4000),@SqlCon NVarchar(1000)
Set @SqlTxt = N''
Set @SqlCon = N''

--组织动态SQL字符
Set @SqlTxt = N'Insert Into #TmpStyle' + CHAR(13)
+ N'Select Distinct 0,A.SystemID,A.StyleID,A.StyleNo,A.StyleName,A.StandardStyleNo,0,A.StyleTypeID,N'''',N'''',A.CreatedDate,DATEADD(Day,A.CreatedDate,N''2010-01-01''),0 ' + CHAR(13)
+ N' From MainStyle A With(NoLock) ' + CHAR(13)
+ N' Inner Join StyleEdition B With(NoLock) On B.SystemID = A.SystemID ' + CHAR(13)

/***** 处理条件语句生成 *****/
--款号条件处理
If @StyleNo != N''
Begin
If @SqlCon = N'' Set @SqlCon = N' Where ' Else Set @SqlCon = @SqlCon + N' And '
Set @SqlCon = @SqlCon + N' (A.StyleNo Like ''%' + @StyleNo + N'%'')'  + CHAR(13)
End

--款名条件处理
If @StyleName != N''
Begin
If @SqlCon = N'' Set @SqlCon = N' Where ' Else Set @SqlCon = @SqlCon + N' And '
Set @SqlCon = @SqlCon + N' (A.StyleName Like ''%' + @StyleName + N'%'')' + CHAR(13)
End

--主款号条件处理
If @StandardStyleNo != N''
Begin
If @SqlCon = N'' Set @SqlCon = N' Where ' Else Set @SqlCon = @SqlCon + N' And '
Set @SqlCon = @SqlCon + N' (A.StandardStyleNo = ''' + @StandardStyleNo + N''')' + CHAR(13)
End

--款式类别条件处理
If @StyleTypeID > 0
Begin
If @SqlCon = N'' Set @SqlCon = N' Where ' Else Set @SqlCon = @SqlCon + N' And '
Set @SqlCon = @SqlCon + N' (A.StyleTypeId = ' + CONVERT(NVarchar,@StyleTypeID) + N')' + CHAR(13)
End

--修改时间处理条件处理
If @MFDate > 0 Or @MTDate > 0
Begin
If @SqlCon = N'' Set @SqlCon = N' Where ' Else Set @SqlCon = @SqlCon + N' And '
Set @SqlCon = @SqlCon + N' (DATEDIFF(DAY,N''2010-01-01'',B.ModifiedDate) Between ' + CONVERT(NVarchar,@MFDate) + N' And ' + CONVERT(NVarchar,@MTDate) + N')' + CHAR(13)
End

--状态条件处理
If @SqlCon = N'' Set @SqlCon = N' Where ' Else Set @SqlCon = @SqlCon + N' And '
Set @SqlCon = @SqlCon + N' (A.State = ' + CONVERT(NVarchar,@State) + N')' + CHAR(13)

Set @SqlTxt = @SqlTxt + @SqlCon

Print @SqlTxt
Exec(@SqlTxt)

------解决思路----------------------
你是客户端拼的sql,有选择地拼条件啊。
    Dim sql As String
    Dim sqlWhere As String
    
    '输入非空的才拼条件'
    sqlWhere = vbNullString
    If Len(TextBox22.Text) <> 0 Then
        sqlWhere = sqlWhere & " AND ID= '" + TextBox22.Text + "'"
    End If
    If Len(TextBox1.Text) <> 0 Then
        sqlWhere = sqlWhere & " AND xuhao='" + TextBox1.Text + "'"
    End If
    ...
    
    '第一个 AND 替换成 WHERE'
    If Len(sqlWhere) <> 0 Then
        sqlWhere = " WHERE " & Mid$(sqlWhere, 5)
    End If

    sql = "select * from equipment " & sqlWhere