3

201201、201202、201203 などの形式の日付の列があります。

これは金融データベースであるため、期間 13 があります。ただし、期間 12 と 13 はレポート目的で結合されます。

最後の 2 文字が 13 の場合、それらを 12 に置き換えるにはどうすればよいですか?

私はから始めました

SELECT REPLACE(PERIOD, '13', '12')
FROM @b_s_summary

しかしもちろん、これは 2013 年という年を台無しにします。

すべてのアドバイスに感謝します。

4

5 に答える 5

2
declare @Periods as Table ( Period VarChar(6) )
insert into @Periods ( Period ) values
  ( '201212' ), ( '201213' ), ( '201312' ), ( '201313' ) 

select Period, case
  when Right( Period, 2 ) = '13' then Substring( Period, 1, 4 ) + '12'
  else Period end as [AdjustedPeriod]
  from @Period
于 2013-05-22T16:42:46.097 に答える
1

これを試して:

select (case when right(period, 2) = '13' then left(period, 4) + '12' else period end)

かなり標準的な SQL ですが、一部のデータベースでは and の代わりに or が必要になるsubstr()場合があります。substring()right()left()

于 2013-05-22T16:43:33.750 に答える