Sql 如果其他列为空,请选择一列
我需要从一个表中选择一个名为ProgramID的字段,如果ProgramID为NULL,那么我需要从同一个表中选择InterimProgramID中的值,并将其别名为ProgramIDSql 如果其他列为空,请选择一列,sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要从一个表中选择一个名为ProgramID的字段,如果ProgramID为NULL,那么我需要从同一个表中选择InterimProgramID中的值,并将其别名为ProgramID 如何生成条件SELECT语句来执行此操作?您需要ISNULL函数 SELECT ISNULL(a, b) 如果a为空,则选择b 此外,您还可以使用WHEN/THEN select选项,在BOL中查找。本质上:其c开关/外壳块符合SQL。您可以使用函数或函数。它们的作用几乎相同,但是ISNULL只接受两个参数,C
如何生成条件SELECT语句来执行此操作?您需要ISNULL函数
SELECT ISNULL(a, b)
如果a
为空,则选择b
此外,您还可以使用WHEN/THEN select选项,在BOL中查找。本质上:其c开关/外壳块符合SQL。您可以使用函数或函数。它们的作用几乎相同,但是ISNULL
只接受两个参数,COALESCE
接受多个参数(返回它遇到的第一个非null参数)。两个参数都尝试第一个参数,然后是第二个参数(合并继续进行)
您还可以使用IFNULL函数
select IFNULL(ProgramId,interimId) as ProgramId
合并('zzz-'+ProgramID,InterimID)作为ProgramID仍然会忽略ProgramID,即使您有一个借口值。这是一个很酷的小功能还有:
Select NVL(Column_A, Column_B) From 'schema'.'table_name'
NVL()函数在Oracle中可用,而在MySQL或SQL Server中不可用。此函数用于将空值替换为另一个值。它类似于MySQL中的IFNULL函数和SQL Server中的ISNULL函数
这个问题是关于SQL Server的,
IFNULL
不存在于该DBMS中,只有ISNULL
MySQL等价物是IFNULL,而其在javascriptPostgreSQL中的a | | b
等价物是null如果我的意思是该问题被严格标记为tsql的话
SELECT ProgramID
FROM a_table
WHERE ProgramID IS NOT NULL
UNION
SELECT InterimProgramID AS ProgramID
FROM a_table
WHERE ProgramID IS NULL;
select IFNULL(ProgramId,interimId) as ProgramId
Select NVL(Column_A, Column_B) From 'schema'.'table_name'