#sql #oracle
#sql #Oracle
Вопрос:
У меня есть несколько столбцов, которые необходимо объединить в один столбец, но я не хочу терять цветовое форматирование для отдельной ячейки столбца
Table name: report
colNum col1 col2 col3
1 a b c
2 b a b
All b are in red color
All a are in Green color
All c are in black color
After
ColNum NewCol
1 a b c
2 b a b
I have used the below query
select colnum, col1||' '||col2||' '||col3 as NewCol
from report
Issue is color formatting is lost after the merge
После
Комментарии:
1. База данных Oracle хранит цвет не для значений, а только для данных. Пожалуйста, уточните аспект цвета.
2. эти ‘a’, ‘b’ ‘c’ похожи на легенды. таким образом, просмотр цвета текста покажет данные визуально. Если это невозможно, попробуйте увидеть что-то еще.
3. Возможно, значения имеют некоторые HTML-теги / форматирование, которые вы не включаете?
4. Не имеет значения, что означают цвета. Как сказал @TheImpaler, база данных ничего об этом не знает. Цвета отображаемого текста — это то, что делается приложением / клиентской программой. И мы не знаем, что это такое.
Ответ №1:
Как указывали другие в комментариях, в базе данных с данными нет цвета. Цвет, которым отображается информация, зависит от клиента, который вы используете для запроса данных.
Я не верю, что у SQLPlus есть какие-либо параметры раскраски. Если вы используете SQLcl, у Криса Райса (разработчика SQLcl) есть сообщение в блоге, показывающее, как выполнять все виды раскрашивания при использовании SQLcl в качестве клиента. Цветовое оформление SQL Developer можно определить с помощью форматирования в стиле HTML, если столбец начинается с <html>
тега (см. Скриншот ниже). Другие инструменты разработки, такие как PL / SQL Developer и Toad, вероятно, имеют свои собственные варианты раскраски, но я с ними не знаком, поэтому вам придется просмотреть их веб-сайт / документацию.
Запрос для разработчика SQL
WITH
test_table (colNum,
col1,
col2,
col3)
AS
(SELECT 1, 'a', 'b', 'c' FROM DUAL
UNION ALL
SELECT 2, 'b', 'a', 'b' FROM DUAL)
SELECT colnum, '<html><font size="5" color="red">'||col1 as col1,
'<html><font size="5" color="green">'||col2 as col2,
'<html><font size="5" color="black">'||col3 as col3,
'<html><font size="5" color="red">'||col1
|| '<font size="5" color="green"> ' || col2
|| '<font size="5" color="black"> ' || col3 AS newcol
FROM test_table;