Изменить запрос под условие
мне нужно, чтобы если kr = null, то убираем из условия "dat = 0323". Как бы можно было это реализовать?
select * ,
case when kr is null then 'НЕ ПОДАН'
else substring(kr,9,2)+'.'+substring(kr,6,2)+'.'+substring(kr,1,4)
end as kroy,
case when substring ([Наименование],1,1) ='*'
then NULL
else dz
end as data_zapuska,
from (
select
mex_cex.dbo.model.id_model,
mex_cex.dbo.model.kod_modeli as 'km',
mex_cex.dbo.model.kod_modeli as 'Код модели',
case when mex_cex.dbo.model.kod_modeli in (
select distinct Model_ID
from [NSI].[dbo].[SprInfoModel]
where Date_Starting between '01.03.2023' and '31.03.2023'
)
then nsi.dbo.SprMod.NP
else '* ' + nsi.dbo.SprMod.NP
end as 'Наименование',
mex_cex.dbo.model.familiya as 'Технолог',
mex_cex.dbo.model.status as 'Статус',
mex_cex.dbo.model.status2 as 'Статус2',
DATENAME(month, mex_cex.dbo.model.period) AS 'Период ',
data_zapuska as dz,
rez_priemki,
data_priemki,
prim_ipk,
isnull(
isnull(
(select top 1 smu.KU
from NSI.dbo.SprModUh smu
where smu.MOD = mex_cex.dbo.model.kod_modeli and smu.KU is not null
order by dat desc),
(SELECT top 1 [ku] FROM [1201].[dbo].[Plane_PM] where km = mex_cex.dbo.model.kod_modeli and ku is not null)
),
(SELECT top 1 [ku] FROM [1201].[dbo].[Plane] where km = mex_cex.dbo.model.kod_modeli and ku is not null)
) as uch,
cast(cast((
SELECT min([DT1])
FROM [CRB].[dbo].[M070102]
WHERE m = mex_cex.dbo.model.kod_modeli and dat = 0323
) as date) as varchar) as kr
from mex_cex.dbo.model
left join nsi.dbo.SprMod on mex_cex.dbo.model.kod_modeli = nsi.dbo.SprMod.M
where mex_cex.dbo.model.period = '01.03.2023'
) a
order by case when substring(a.[Наименование], 1, 1) = '*'
then '11'
else '0'
end,
uch,
cast(rtrim(ltrim(a.[Код модели])) as int)
Источник: Stack Overflow на русском