在SQL Select语句中使用If else

use*_*820 38 sql sql-server

我有一个select语句,它将返回2列.

ID | IDParent
Run Code Online (Sandbox Code Playgroud)

然后在我的程序中我必须测试 if IDParent is < 1 then use ID ELSE use IDParent

有没有办法在SQL中使用If Else like条件只返回单个值?

Joh*_*Woo 86

您可以使用 CASE

SELECT   ...,
         CASE WHEN IDParent < 1 THEN ID ELSE IDPArent END AS ColumnName,
         ...
FROM     tableName
Run Code Online (Sandbox Code Playgroud)


Ana*_*dke 22

SELECT CASE WHEN IDParent < 1 
            THEN ID 
            ELSE IDParent 
       END AS colname 
FROM yourtable
Run Code Online (Sandbox Code Playgroud)


jai*_*444 21

在这里,使用CASE Statement并找到结果:

select (case when condition1 then result1
             when condition2 then result2
             else result3
             end) as columnname from tablenmae:
Run Code Online (Sandbox Code Playgroud)

例如:

select (CASE WHEN IDParent< 1 then ID 
             else IDParent END) as columnname
from tablenmae
Run Code Online (Sandbox Code Playgroud)


M. *_*put 7

这里有两种方式“IF”或“CASE”。

SELECT IF(COLUMN_NAME = "VALUE", "VALUE_1", "VALUE_2") AS COLUMN_NAME 
FROM TABLE_NAME;
Run Code Online (Sandbox Code Playgroud)

或者

SELECT (CASE WHEN COLUMN_NAME = "VALUE" THEN 'VALUE_1' ELSE 'VALUE_2' END) AS COLUMN_NAME 
FROM TABLE_NAME;
Run Code Online (Sandbox Code Playgroud)