1

我有以下表架构

declare @temp table  
 (
   id int identity(1,1) not null,
   nod nvarchar(50) 
 )

在哪一nod列有以下数据

insert into @temp select 'N/A'
 insert into @temp select 'N/A'
 insert into @temp select '5'
 insert into @temp select 'N/A'
 insert into @temp select '7'
 insert into @temp select 'N/A'
 insert into @temp select '31'
 insert into @temp select '15'

我希望选择语句应该在以下基础上给我结果

如果nod'N/A'那么它应该显示'N/A'

或者如果有像 5,15,31 这样的数值,那么它应该显示getdate()-nod date日期列

我已尝试关注但未能减去天数并且还表示'N/A''N/A'该 nvarchar 列中的时间

 select  DATEADD(dd,case nod when 'N/A' then 0 else nod end,GETDATE()) from @temp

sql 小提琴在这里

4

1 回答 1

1

以下查询将返回VARCHAR(50)包含“N/A”或now - nod日期作为 varchar 的列。

SELECT
     CASE nod
         WHEN 'N/A' THEN 'N/A'
         ELSE CONVERT(VARCHAR(50), 
                      DATEADD(dd, 
                              -1 * CONVERT(INT, nod), 
                              GETDATE()
                             )
                     ) 
     END
FROM @temp
于 2012-10-20T07:17:39.203 回答