在另一种情况下使用SQL时使用Case
这是我的在另一种情况下使用SQL时使用Case,sql,database,oracle,if-statement,Sql,Database,Oracle,If Statement,这是我的SQL中的Select部分的一部分 (CASE WHEN GECIKME_CV(:TAR,B.HESAP_NO, 90, 9999, B.DOVIZ_KOD) AND > 0 THEN 100 ELSE 0 END) AS PROV, (CASE WHEN B.HESAP_NO IN (SELECT HESAP_NO FROM S_TAKIP_MUSTERI) THEN 'E' ELSE 'H' END) AS CAT5, 我想在PROV列中添加此SQL,,如果CAT5='
SQL
中的Select
部分的一部分
(CASE WHEN GECIKME_CV(:TAR,B.HESAP_NO, 90, 9999, B.DOVIZ_KOD) AND > 0 THEN 100 ELSE 0 END) AS PROV,
(CASE WHEN B.HESAP_NO IN (SELECT HESAP_NO FROM S_TAKIP_MUSTERI) THEN 'E' ELSE 'H' END) AS CAT5,
我想在PROV列中添加此SQL
,,如果CAT5='E',则PROV=0
如何修改此SQL
编辑:我是这样想的
(CASE WHEN GECIKME_CV(:TAR,B.HESAP_NO, 90, 9999, B.DOVIZ_KOD) AND > 0 THEN 100 WHEN B.HESAP_NO IN (SELECT HESAP_NO FROM S_TAKIP_MUSTERI)='E' THEN 100 ELSE 0 END) AS PROV
但它不起作用
EDIT2:为什么这不起作用
(CASE WHEN GECIKME_CV(:TAR,B.HESAP_NO, 90, 9999, B.DOVIZ_KOD) > 0 THEN 100 WHEN B.HESAP_NO IN (SELECT HESAP_NO FROM S_TAKIP_MUSTERI) THEN 100 ELSE 0 END) AS PROV
您可以将查询用作子查询:
SELECT
(CASE WHEN CAT5 = 'E' THEN 0 ELSE PROV END) PROV,
CAT5
FROM ( YOUR_QUERY ) anAlias
例如:
SELECT
(CASE WHEN CAT5 = 'E' THEN 0 ELSE PROV END) PROV,
CAT5
FROM (
-- this is your query
SELECT 'E' CAT5, 5 PROV
-- this is your query
) anAlias
用您的查询替换您的查询。在我给出的“来自(你的查询)anAlias”的查询中,你为什么说它不起作用?您会收到什么错误消息?