0

我只是想知道If/Else在 VB.Net 代码中的 SQL 查询中添加语句的最佳方法是什么?

这是我当前的查询(不起作用):

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

提前致谢。

4

3 回答 3

2

你可以尝试这样的事情:

SELECT FIRSTNAME, LASTNAME 
FROM TBL_USERS 
ORDER BY Case when <SortSelect>= 'lastname' then LASTNAME else  FIRSTNAME end
于 2012-11-07T14:43:19.547 回答
2

我对此的看法是永远不要把它IF放在 SQL 语句中。它使阅读变得太难了。可能是因为它们都在同一条线上。

在您的情况下,只有一个,但是当您有很多条件时,几乎无法阅读。

您应该像这样为您的条件声明一个字符串

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
于 2012-11-07T14:47:26.123 回答
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
于 2012-11-07T14:43:21.837 回答