2012-11-07 2 views
0

VB.Net 코드 내에서 If/Else 문을 SQL 쿼리에 추가하는 가장 좋은 방법은 무엇입니까?VB.NET (SQL) 쿼리의/Else 문?

이 내 현재 쿼리입니다 (작동하지 않습니다) :

SELECT 
    FIRSTNAME, LASTNAME 
FROM 
    TBL_USERS 
ORDER BY 
    If(SortSelect() Is ""lastname"", LASTNAME, FIRSTNAME) 

사전에 감사합니다.

+0

같은 당신의 상태에 대한 문자열을 선언해야? – Marc

답변

2

내 의견은 SQL 문에서 IF을 넣어 결코 것입니다. 그것은 읽기가 너무 어렵습니다. 아마 같은 줄에 있기 때문일거야.

귀하의 경우에는 하나만 있지만 많은 조건이 생기면 거의 읽을 수 없습니다.

당신은 오류가이

Dim strQuery as string 
Dim strOrderBy as string 

If(SortSelect() = "lastname") then 
    strOrderBy = "Order By lastname" 
Else 
    strOrderBy = "Order By firstname" 
endif 


strQuery = "SELECT FIRSTNAME, LASTNAME FROM TBL_USERS " & strOrderBy 
2

당신은 이런 식으로 뭔가를 시도 할 수 있습니다 :이 약

SELECT FIRSTNAME, LASTNAME 
FROM TBL_USERS 
ORDER BY Case when <SortSelect>= 'lastname' then LASTNAME else FIRSTNAME end 
+0

이것은 SQL 서버 – deerchao

+0

에서 작동합니다.'SortSelect()'는 VB 함수처럼 보입니다 ... 어떻게 그것을 SQL 문자열에서 사용할 수 있습니까? – Andomar

+0

@Andomar : 당신 말이 맞아. 무슨 뜻 이냐면, 그는 SortSelect에 적절한 값으로 VB.net에서 쿼리를 생성하고 데이터베이스에 전달해야한다. –

1
Dim sql as string = "SELECT FIRSTNAME, LASTNAME FROM TBL_USERS ORDER BY " 
if (SortSelect() = "lastname") 
    sql = sql & "lastname" 
else 
    sql = sql & "firstname" 
end if