Замените несколько строк в SQL-запросе

это работает для меня. попробуйте следующее:

N = 3
a = [0 if N<2 else val*2 for val in range(0,N//2)]
#output: [0]
12
задан Eric Ness 2 February 2009 в 16:04
поделиться

7 ответов

BradC имеет лучший ответ до сих пор, но в случае, если Вы по некоторым причинам не можете составить дополнительную таблицу, я хотел отправить адаптацию ответа Kibbee:

SELECT
    CASE WHEN Product IN ('Banana', 'Apple', 'Orange') Then 'Fruit'
    ELSE Product END 
FROM [Table]
20
ответ дан 2 December 2019 в 03:43
поделиться

Сделайте новую таблицу "категории", которая имеет список Ваших продуктов, наряду с "категорией", которой они принадлежат.

Затем просто сделайте внутреннее объединение.

11
ответ дан 2 December 2019 в 03:43
поделиться
Select
Case Product WHEN 'Banana' Then 'Fruit'
WHEN 'Apple' Then 'Fruit'
WHEN 'Orange' Then 'Fruit'
ELSE Product
END
FROM Table
7
ответ дан 2 December 2019 в 03:43
поделиться

Если нет никаких других продуктов, чем упомянутые, Вы могли бы сделать:

SELECT 'Fruit' AS Product,
        Quantity
FROM Table

Если существует другой закон продуктов, добавляет оператор Where

WHERE Product IN ('Banana', 'Orange', 'Apple')
1
ответ дан 2 December 2019 в 03:43
поделиться

Вы могли составить временную таблицу со столбцом 'Product' отдельного столбца и вставить все названия продукта, которые Вы хотите заменить.

Затем сделайте внутреннее объединение против целевой таблицы для Вашего обновления.

UPDATE
    Table
SET Product = 'Fruit'
FROM
    Table t1 INNER JOIN #Table t2 on t1.Product = t2.Product
1
ответ дан 2 December 2019 в 03:43
поделиться

Предложение для создания таблицы "категории" будет лучшим выбором в течение длительного периода.

Поскольку примеры проверяют эту ссылку: Данные принадлежат Ваших таблиц - не в Вашем коде

0
ответ дан 2 December 2019 в 03:43
поделиться

Одинарные кавычки для разделения текста в SQL:

CASE WHEN ShiptoPlant IN (';','/',' ') Then '' ELSE ShipToPlant END
0
ответ дан 2 December 2019 в 03:43
поделиться