使用Mysql获取If Else条件的数据

问题描述 投票:0回答:4

我使用以下查询:

select a,b,c,d from Table1 where a in ('');

该查询给出了如下输出:

a    b    c      d
1    A    1e@c   i-1
2    B    #3ht   i-2
3    A    1e@c   Null
4    C    1e@c   

现在我想对那些我有d为Null或Blank的记录应用IF条件。

我想检查整个数据库,如果我能找到对应于d值或b值的任何c值,并在其他列e中显示。

期望的输出:

a    b    c      d     e
1    A    1e@c   i-1   
2    B    #3ht   i-2
3    A    1e@c   Null  i-1
4    C    1e@c         i-1
mysql sql
4个回答
3
投票

您可以将CASE表达式与相关子查询一起使用:

SELECT t1.a, t1.b, t1.c, t1.d,
       CASE 
          WHEN t1.d IS NULL OR t1.d = '' 
          THEN  (SELECT t2.d
                FROM Table1 AS t2
                WHERE t2.c = t1.c LIMIT 1) 
       END AS e 
FROm Table1 AS t1
WHERE t1.a IN (1, 2, 3, 4);

如果您有多个匹配项,可以使用LIMIT 1随意选择其中一个。否则使用一些谓词来选择所需的匹配记录。

Demo here


0
投票

试试这个:

SELECT A, B, C, D, CASE WHEN D IS NULL OR D='' THEN 'i-1' ELSE '' END AS E
FROM YourTable

0
投票

你可以使用CASE WHEN "Condition" THEN "do this"。它基本上等同于SQL中的if语句。


0
投票

你可以使用SELECT IFNULL(d,'1-1') as eSELECT IF((d = ''),'1-1','') as eSELECT IF((d IS NULL) || (d = ''),'1-1','') as e

© www.soinside.com 2019 - 2024. All rights reserved.