比如:
SELECT UserID, UserName, UserPassWord
FROM T_User
WHERE (UserID = 1) OR
(UserID = 3)
ORDER BY UserID
其中,WHERE 里的条件值来至一个数组。
如果数组里的数值是:1,2
SELECT UserID, UserName, UserPassWord
FROM T_User
WHERE (UserID = 1) OR
(UserID = 2)
ORDER BY UserID如果数组里的数值是:1,2,3,5
SELECT UserID, UserName, UserPassWord
FROM T_User
WHERE (UserID = 1) OR
(UserID = 2) OR
(UserID = 3) OR
(UserID = 5)
ORDER BY UserID
这个SQL的条件是动态生成的。
怎样实现?
我目前是这样写的,但觉得不精简,高手指点。
If StrBudget = "" Then
sql = "SELECT T_Dept.DeptID, T_Dept.DeptName, T_Budget.BudgetID, T_Budget.BudgetName" & _
" FROM T_Budget INNER JOIN" & _
" T_Dept ON T_Budget.BudgetDeptID = T_Dept.DeptID"
Else
sql = "SELECT T_Dept.DeptID, T_Dept.DeptName, T_Budget.BudgetID, T_Budget.BudgetName" & _
" FROM T_Budget INNER JOIN" & _
" T_Dept ON T_Budget.BudgetDeptID = T_Dept.DeptID" & _
" Where ("
TmpBudgetID = Split(StrBudget, ";", -1, vbBinaryCompare)
For i = 0 To UBound(TmpBudgetID)
If Trim(TmpBudgetID(i)) <> "" Then
If i = 0 Then
sql = sql & " T_Budget.BudgetID =" & TmpBudgetID(i)
Else
sql = sql & " OR T_Budget.BudgetID =" & TmpBudgetID(i)
End If
End If
Next i
sql = sql & ")"
End If
sql = sql & " ORDER BY T_Dept.DeptName, T_Budget.BudgetName"
请高手指点。
SELECT UserID, UserName, UserPassWord
FROM T_User
WHERE (UserID = 1) OR
(UserID = 3)
ORDER BY UserID
其中,WHERE 里的条件值来至一个数组。
如果数组里的数值是:1,2
SELECT UserID, UserName, UserPassWord
FROM T_User
WHERE (UserID = 1) OR
(UserID = 2)
ORDER BY UserID如果数组里的数值是:1,2,3,5
SELECT UserID, UserName, UserPassWord
FROM T_User
WHERE (UserID = 1) OR
(UserID = 2) OR
(UserID = 3) OR
(UserID = 5)
ORDER BY UserID
这个SQL的条件是动态生成的。
怎样实现?
我目前是这样写的,但觉得不精简,高手指点。
If StrBudget = "" Then
sql = "SELECT T_Dept.DeptID, T_Dept.DeptName, T_Budget.BudgetID, T_Budget.BudgetName" & _
" FROM T_Budget INNER JOIN" & _
" T_Dept ON T_Budget.BudgetDeptID = T_Dept.DeptID"
Else
sql = "SELECT T_Dept.DeptID, T_Dept.DeptName, T_Budget.BudgetID, T_Budget.BudgetName" & _
" FROM T_Budget INNER JOIN" & _
" T_Dept ON T_Budget.BudgetDeptID = T_Dept.DeptID" & _
" Where ("
TmpBudgetID = Split(StrBudget, ";", -1, vbBinaryCompare)
For i = 0 To UBound(TmpBudgetID)
If Trim(TmpBudgetID(i)) <> "" Then
If i = 0 Then
sql = sql & " T_Budget.BudgetID =" & TmpBudgetID(i)
Else
sql = sql & " OR T_Budget.BudgetID =" & TmpBudgetID(i)
End If
End If
Next i
sql = sql & ")"
End If
sql = sql & " ORDER BY T_Dept.DeptName, T_Budget.BudgetName"
请高手指点。
SELECT UserID, UserName, UserPassWord
FROM T_User
WHERE (UserID = 1) OR
(UserID = 2) OR
(UserID = 3) OR
(UserID = 5)
ORDER BY UserID
============================================改成這樣寫
SELECT UserID, UserName, UserPassWord
FROM T_User
WHERE UserID in(1,2,3,4,5) ORDER BY UserID
If StrBudget = "" Then
sql = "SELECT b.DeptID,b.DeptName,b.BudgetID,b.BudgetName" & _
" FROM T_Budget a INNER JOIN T_Dept b ON a.BudgetDeptID = b.DeptID"
Else
sql = "SELECT b.DeptID,b.DeptName,a.BudgetID,a.BudgetName" & _
"FROM T_Budget a INNER JOIN T_Dept b ON a.BudgetDeptID = b.DeptID" & _
" Where ("
TmpBudgetID = Split(StrBudget, ";", -1, vbBinaryCompare)
For i = 0 To UBound(TmpBudgetID)
If Trim(TmpBudgetID(i)) <> "" Then
If i = 0 Then
sql = sql & " T_Budget.BudgetID =" & TmpBudgetID(i)
Else
sql = sql & " OR T_Budget.BudgetID =" & TmpBudgetID(i)
End If
End If
Next i
sql = sql & ")"
End If
sql = sql & " ORDER BY b.DeptName,a.BudgetName"
如果需要的话我发出来.
把你写的过程,贴出来吧,谢谢了。