Как добавить столбец на sql сервере со значением имени столбца, заданным регистром - PullRequest
0 голосов
/ 12 марта 2020
PriorityOID Priority    NoOfRestrictedDaysForReporting  AllowBackDatedCompletionForDays SOXReporting    SortOrder   PenaltyFactorPercent    RiskFactor
1   Trifling    NULL    0   NULL    50  105 3
2   Low NULL    0   NULL    40  105 3
3   Medium  NULL    0   NULL    30  105 3
4   High    NULL    0   NULL    20  105 3
5   Critical    NULL    0   NULL    10  110 6
6   Not Available   NULL    0   NULL    60  105 3
7   Super-critical  NULL    NULL    NULL    9   120 9

image of my table

Мне нужно добавить еще один столбец с именем «Нумерация», и в этом случае супер, затем 1, когда критично, затем 2, когда высокий, 3, когда средний, затем 4, когда низкий, затем 5, когда пустяк, затем 6, когда недоступно, затем 7

Ответы [ 2 ]

2 голосов
/ 12 марта 2020

Вы можете использовать выражение case:

select
    t.*,
    case priority
        when 'Super'         then 1
        when 'Critical'      then 2
        when 'High'          then 3
        when 'Medium'        then 4
        when 'Low'           then 5
        when 'Trifling'      then 6
        when 'Not Available' then 7
    end numbering
from mytable t

Если вы хотите сохранить эту информацию в таблице, то, как прокомментировал Ларну, вычисляемый столбец кажется подходящим подходом (или вид):

alter table mytable 
add numbering as (
    case priority
        when 'Super'         then 1
        when 'Critical'      then 2
        when 'High'          then 3
        when 'Medium'        then 4
        when 'Low'           then 5
        when 'Trifling'      then 6
        when 'Not Available' then 7
    end
);
1 голос
/ 12 марта 2020
SELECT PriorityOID,Priority,NoOfRestrictedDaysForReporting,
AllowBackDatedCompletionForDays, SOXReporting,SortOrder,PenaltyFactorPercent,RiskFactor,
CASE WHEN Priority='super' THEN 1
     WHEN Priority='critical' THEN 2 
     WHEN Priority='high' THEN 3 
     WHEN Priority='medium' THEN 4
     WHEN Priority='low' THEN 5 
     WHEN Priority='trifling ' THEN 6
     when Priority='Not Available' THEN 7 
     else 8....go on..        

     END AS Numbering

Frm YourTableName

Примечание: - Вы должны использовать случай, когда тогда ..

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