Sql Oracle在没有查询记录时如何填充数据
我想在PL/SQL中执行以下SQLSql Oracle在没有查询记录时如何填充数据,sql,oracle,Sql,Oracle,我想在PL/SQL中执行以下SQL select did, n1, n2 ,n3 from t where t.did in (‘A’,’C’,’G’) 结果将是“不重新编码” 我希望结果能是这样 我应该如何编写sql理想情况下,您应该有其他一些表来维护所有可能的did值。如果没有,我们可以在此处尝试使用CTE: WITH cte AS ( SELECT 'A' AS did FROM dual UNION ALL SELECT 'B' FROM dual UNIO
select did, n1, n2 ,n3
from t where t.did in (‘A’,’C’,’G’)
结果将是“不重新编码”
我希望结果能是这样
我应该如何编写sql理想情况下,您应该有其他一些表来维护所有可能的
did
值。如果没有,我们可以在此处尝试使用CTE:
WITH cte AS (
SELECT 'A' AS did FROM dual UNION ALL
SELECT 'B' FROM dual UNION ALL
SELECT 'C' FROM dual
)
SELECT
t1.did,
t2.n1,
t2.n2,
t3.n3
FROM cte t1
LEFT JOIN t t2
ON t1.did = t2.did;
当然,这也意味着,如果您的表中有多条记录与给定的did
值匹配,那么您的结果集也会有多条记录与该did
值匹配。如果您总是希望每个did
值都有一条记录,那么您必须向我们提供其背后的逻辑