Commish13 Ответов: 2

Напишите запрос, чтобы добавить 2, где число заканчивается 0, и добавить 3, где число заканчивается 1.


У меня есть таблица с проданным столбцом, в которой есть строки с текущими значениями:

81, 10, 40, 71, 21, 31, 41, 30, 90, 61, 50, 11, 20, 91, 60

Я пытаюсь написать запрос, чтобы добавить 2, где число заканчивается 0, и добавить 3, где число заканчивается 1.

Что я уже пробовал:

Это моя печальная попытка до сих пор

Выберите SalesId, EmployeeId, CAST(продается как varchar(20)) + '1'
на продажи
Где продается как "%1"

Я не знаю, следует ли мне использовать операторы CASE или IF

MadMyche

Слева и справа можно использовать числовые поля, справа (продано, 1) немного чище выглядит ИМХО

2 Ответов

Рейтинг:
9

Maciej Los

В дополнение к решению1 RossMW[^] я бы предложил сделать это более эффективным способом, используя по модулю[^].

DECLARE @tmp TABLE(myNumber INT)

INSERT INTO @tmp (myNumber)
VALUES(81), (10), (40),(71), (21), 
	(31), (41), (30), (90), (61), 
	(50), (11), (20), (91), (60)

SELECT myNumber, CASE WHEN myNumber % 10 = 0 THEN myNumber + 2 ELSE myNumber + 1 END AS NewMyNumber
FROM @tmp 

Результат:
myNumber	NewMyNumber
81			82
10			12
40			42
71			72
21			22
31			32
41			42
30			32
90			92
61			62
50			52
11			12
20			22
91			92
60			62


CPallini

5.

Maciej Los

Спасибо, Карло.

Рейтинг:
19

RossMW

пробовать

select SalesId, EmployeeId, case when right(cast(sold as varchar(20)),1) = '0' then sold + 2 else case when right(cast(sold as varchar(20)),1) = '1' then sold + 1 else sold end end from Sales


Maciej Los

5ед!