基本上我的表包含一个看起来像“2011-2012 Q1”的会计年度字段,我想尽可能使用SQL将其输出为“Q1 11-12”。如果有帮助,这适用于ASP.NET页面。
答案 0 :(得分:2)
declare @s varchar(20)
set @s = '2011-2012 Q1'
select right(@s, 2) + ' ' + substring(@s, 3, 3) + substring(@s, 8, 2)
答案 1 :(得分:2)
怎么样;
;with test (fiscal) as (
select '2011-2012 Q1' union
select '1990-1991 Q2' union
select '2012-2013 Q4' union
select '1999-1999 Q3'
)
select
right(fiscal, 2) + ' '
+
substring(fiscal, 3, 2) + '-'
+
substring(fiscal, 8, 2)
from test
>>Q2 90-91
>>Q3 99-99
>>Q1 11-12
>>Q4 12-13
答案 2 :(得分:1)
必须有更好的方法,但可以使用此
PRINT RIGHT('2011-2012 Q1', 2) + ' ' + RIGHT(LEFT('2011-2012 Q1', 4), 2) + '-' + RIGHT(LEFT('2011-2012 Q1', 9), 2)
返回
Q1 11-12
请注意,SQL Server并非真正用于字符串操作,我建议您将显示逻辑放在它真正属于的位置 - 在您的UI中
答案 3 :(得分:1)
SELECT RIGHT(col, 2) +' '+ SUBSTRING(STUFF(col, 6,2,''), 3,5)
FROM (SELECT '2011-2012 Q1' col) t