【问题标题】:Inserting a Zero instead of NULL while performing LEFT OUTER JOIN in MYSQL在 MYSQL 中执行 LEFT OUTER JOIN 时插入零而不是 NULL
【发布时间】:2012-10-28 06:56:01
【问题描述】:

在对两个表执行 LEFT OUTER JOIN 时,有没有办法插入零而不是 NULL?

假设我有这样的查询:

SELECT * FROM
(SELECT uID from Class) T1
LEFT OUTER JOIN
(SELECT pID from University) T2
ON T1.uID = T2.pID
CASE WHEN T1.uID IS NULL
    THEN 0
ELSE T1.uID
END AS uID`

如果我错了,请纠正我

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    使用ISNULL(field, 0),如果字段为NULL,则插入零

    【讨论】:

    • 对于 MySQL,您的意思是 ifnull() 而不是 isnull() =)
    【解决方案2】:

    类似:-

    SELECT * FROM
    (SELECT ifnull(uID,0) as uID from Class) T1
       LEFT OUTER JOIN
     (SELECT ifnull(pID,0) as pID from University) T2
       ON T1.uID = T2.pID
    

    【讨论】:

      【解决方案3】:
      CASE WHEN a.fieldname IS NULL 
             THEN 0
             ELSE a.fieldname
      END AS fieldname
      

      【讨论】:

      • SELECT * FROM (SELECT uID from Class) T1 LEFT OUTER JOIN (SELECT pID from University) T2 ON T1.uID = T2.pID CASE WHEN T1.uID IS NULL THEN 0 ELSE T1.uID END AS uID如果我错了请纠正我
      • 如果你想在 T1.UID 为空时加入 0,请使用下面的代码:SELECT * FROM (SELECT CASE WHEN uID IS NULL THEN 0 ELSE uID END AS uID from Class) T1 LEFT OUTER JOIN (SELECT pID from University) T2 ON T1.uID = T2.pID
      猜你喜欢
      • 1970-01-01
      • 2017-10-28
      • 2018-02-28
      • 2018-12-04
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 2018-04-08
      相关资源
      最近更新 更多