Форматирование «2011-2012 Q1» как «Q1 11-12» в SQL Server 2005 - PullRequest
0 голосов
/ 28 июля 2011

В основном моя таблица содержит поле финансового года, которое выглядит как «2011-2012 Q1», и я хочу вывести его как «Q1 11-12», используя SQL, только если это возможно. Это для страницы ASP.NET, если это помогает.

Ответы [ 4 ]

2 голосов
/ 28 июля 2011

как насчет;

;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 голосов
/ 28 июля 2011
declare @s varchar(20)
set @s = '2011-2012 Q1'
select right(@s, 2) + ' ' + substring(@s, 3, 3) + substring(@s, 8, 2)
1 голос
/ 28 июля 2011
SELECT RIGHT(col, 2) +' '+ SUBSTRING(STUFF(col, 6,2,''), 3,5)
FROM (SELECT '2011-2012 Q1' col) t
1 голос
/ 28 июля 2011

Должен быть лучший способ, но вы могли бы использовать это

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 на самом деле не предназначен дляманипулирование строками, и я бы посоветовал вам разместить логику отображения там, где она действительно принадлежит - в вашем пользовательском интерфейсе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...