-3

亲爱的我正在写 sql select 语句:

SELECT 
  CourtCode,
 CourtName+ ' '+ CourtType AS Court 
from  table

CourtType 是可为空的 int 列

我希望当我的选择栏CourtType=null返回“法院”时

4

2 回答 2

1

这个问题的编写方式很难理解你的需求,但如果我猜的话,我认为你只需要一个左外连接和一个 CASE 语句。左外连接确保返回 Diw_Tb_Court 表中的行,即使 Diw_tb_CourtType 表中没有匹配的行。CASE 语句让您询问是否发生了 Diw_Tb_courtType 连接,如果发生了,则将其名称附加到您的“名称”列。

SELECT
   c.Fd_CourtCode,
   name = c.Fd_CourtName + 
      CASE WHEN ct.Fd_CourtType is not null THEN ' ' + ct.Fd_CourtType ELSE '' END
FROM
   Diw_Tb_Court c 
   left outer join Diw_Tb_CourtType ct on ct.id = c.courtType
于 2012-04-15T20:06:03.310 回答
1

似乎是ISNULL()or的工作COALESCE()

SELECT 
  Diw_Tb_Court.Fd_CourtCode,
  COALESCE(Diw_Tb_Court.Fd_CourtName + ' ', '')
  + COALESCE(Diw_Tb_CourtType.Fd_CourtType, '') AS Court 
FROM …
于 2012-04-15T21:03:02.303 回答