49

2 つの列を返す select ステートメントがあります。

ID | IDParent

次に、私のプログラムでテストする必要がありますif IDParent is < 1 then use ID ELSE use IDParent

SQL で If Else like 条件を使用して単一の値のみを返す方法はありますか?

4

11 に答える 11

103

あなたが使用することができますCASE

SELECT   ...,
         CASE WHEN IDParent < 1 THEN ID ELSE IDPArent END AS ColumnName,
         ...
FROM     tableName
于 2012-11-23T09:55:27.367 に答える
30

ここでは、CASE Statement結果を使用して検索します。

select (case when condition1 then result1
             when condition2 then result2
             else result3
             end) as columnname from tablenmae:

例えば:

select (CASE WHEN IDParent< 1 then ID 
             else IDParent END) as columnname
from tablenmae
于 2012-11-23T09:59:34.793 に答える
23
SELECT CASE WHEN IDParent < 1 
            THEN ID 
            ELSE IDParent 
       END AS colname 
FROM yourtable
于 2012-11-23T09:55:31.317 に答える
4

クエリは次のようになります

SELECT (CASE WHEN tuLieuSo is null or tuLieuSo=''
            THEN 'Chưa có đĩa' 
            ELSE 'Có đĩa' End) AS tuLieuSo,moTa
FROM [gPlan_datav3_SQHKTHN].[dbo].[gPlan_HoSo]
于 2014-10-06T03:56:59.017 に答える
2

SQL サーバー 2012

  with
  student as 
(select sid,year from (
values (101,5),(102,5),(103,4),(104,3),(105,2),(106,1),(107,4)
) as student(sid,year)
)
select iif(year=5,sid,year) as myCol,* from student


 myCol  sid year
101 101 5
102 102 5
4   103 4
3   104 3
2   105 2
1   106 1
4   107 4
于 2014-10-11T09:57:38.053 に答える
0
select 
CASE WHEN IDParent is < 1 then ID else IDParent END as colname 
from yourtable
于 2012-11-23T11:17:58.293 に答える
0

ユニオン コンストラクトを使用することもできます。CASE が一般的な SQL 構造であるかどうかはわかりません...

SELECT ID FROM tabName WHERE IDParent<1 OR IDParent IS NULL
UNION 
SELECT IDParent FROM tabName WHERE IDParent>1
于 2012-11-23T10:17:44.787 に答える