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'

select stment shoud が次の基準に基づいて結果を返すことを望みます

nod値の場合'N/A'、表示する必要があります'N/A'

または、5,15,31 のような数値がある場合は、getdate()-nod date日付列を表示する必要があります

私は次のことを試みましたが、日を差し引くことができず、その nvarchar 列'N/A'にいつ表示されますか'N/A'

 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 に答える