Я новичок в SQL, но не смог найти хороший способ сделать то, что я пытаюсь сделать здесь.
Цель: ввести в столбец данные, отличные от тех, которые обычно извлекаются с помощью SELECT, исходя из критериев
В приведенном ниже примере мне нужны все данные в столбце A таблицы 1, но я хочу заменить все экземпляры 'C' на 'X'.
IE:
Table 1 Table 2
----------------------------
| A | B | | A | C |
-------------------------------
| y | 5 | | y | 17 |
-------------------------------
| z | 2 | | z | 8 |
Выбранные данные:
--------------
| C |
------------
| X |
------------
| 8 |
SELECT
t.C
FROM Table1 t with(nolock)
INNER JOIN Table2 tp with (nolock)
ON tp.A = t.A
WHERE t.a in ('y', 'z')
(В этом примере утверждение WHERE может показаться немного странным, когда я пытаюсь перевести мой код на работе на не примирительный язык, и я только на 70% понимаю, что я делаю с этим)
Основная идея заключается в том, что я выбрал данные в столбце «C», но заменил экземпляр данных «17» значением «X». Написанный код не будет выполнять эту замену, просто хотел структуру, которая у меня есть сейчас. Обратите внимание, что это просто изменяет данные в таблице выбора, но НЕ обновляет данные таблицы 2 на сервере.
Любая помощь будет оценена, спасибо!
=================================
Решение, используемое благодаря Barmar
SELECT
t.A,
CASE WHEN (t.C = 17), THEN 'X' else t.C END [Title of Column]
И остальное утверждение было таким же. Обратите внимание, что это НЕ РАБОТАЕТ с приведенным выше примером, хотя, потому что данные столбца C являются числами, и я хочу заменить их на символ 'X'. Вы можете либо заменить его тем же типом данных, либо в инструкции ELSE по умолчанию заменить этот столбец «каким-либо другим строковым значением», и он будет работать.