powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возможно ли столбцы добавить в виде текста в другой столбец
17 сообщений из 17, страница 1 из 1
Возможно ли столбцы добавить в виде текста в другой столбец
    #39659624
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня.
Сейчас объясню на пальцах свой вопрос. Бурят скважину, из нее вытаскивают керн и геолог его описывает. У него программа состоит из четырех вкладок, на каждой вкладке свои "от-до", чтобы знать о каком интервале идет речь.
Сама таблица выглядит так

declare @GEODETAIL table (Holeid varchar(20), geolfrom float, geolto float, name varchar(20),value varchar(20))
insert into @GEODETAIL (holeid, geolfrom, geolto, name, value) values
('hr-1',0,8,'Lith_RockName','Песчанник'),
('hr-1',8,50,'Lith_RockName','Алевролит'),
('hr-1',50,100,'Lith_RockName','Известняк'),
('hr-1',100,108,'Lith_RockName','Гравелиты'),
('hr-1',108,200,'Lith_RockName','Алевролиты'),
('hr-1',0,5,'Sec_RockName','Глина'),
('hr-1',30,38,'Alt_RockName','Переслаивание'),
('hr-1',120,180,'Min_RockName','Минерализация'),
('hr-1',190,200,'Min_RockName','Минерализация')
select * from @GEODETAIL

В таком виде она не читабельна, поэтому в нормальный вид преобразуется скриптом
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
select case row_number() over(partition by a.holeid order by a.geolfrom) when 1 then a.holeid end as x_holeid, 
case row_number() over(partition by a.holeid,a.geolfrom order by a.geolfrom) when 1 then a.GEOLFROM end as geol_from,
case row_number() over(partition by a.holeid,a.geolfrom,a.geolto order by a.geolfrom) when 1 then a.GEOLTO end as geol_to,
case row_number() over(partition by a.holeid,a.geolfrom,a.geolto,a.value order by a.geolfrom) when 1 then a.VALUE end as Lith_RockNameee,



geolfrom_sec,geolto_sec,Lith3_RockName,geolfrom_alt,geolto_alt,Alteration,geolfrom_min,geolto_min,Mineralisation from GEODETAILS a 
outer apply (Select * From (Select geolfrom as geolfrom_sec, geolto as geolto_sec, value as 'Lith3_RockName',
                                   row_number() over (order by geolfrom) as rn_sec 
                              From GEODETAILS b 
                             Where a.holeid = b.holeid and b.name = 'Lith3_RockName' 
                               and a.geolto>b.geolfrom and a.geolfrom<b.geolto) Sec
					  full join 
					        (Select geolfrom as geolfrom_alt, geolto as geolto_alt, value as 'Alteration',
                                   row_number() over (order by geolfrom) as rn_alt
                              From GEODETAILS b 
                             Where a.holeid = b.holeid and b.name = 'Alteration' 
                               and a.geolto>b.geolfrom and a.geolfrom<b.geolto) alt
						 on rn_sec = rn_alt
					  full join 
					        (Select geolfrom as geolfrom_min, geolto as geolto_min, value as 'Mineralisation',
                                   row_number() over (order by geolfrom) as rn_min
                              From GEODETAILS b 
                             Where a.holeid = b.holeid and b.name = 'Mineralisation' 
                               and a.geolto>b.geolfrom and a.geolfrom<b.geolto) min on isnull(rn_sec,rn_alt) = rn_min
) others
WHere a.name = 'Lith_RockName'



Получается таблица как на картинке
А вопрос мой в следующем. Можно ли в столбец Lith_RockName по мимо своего значения добавить текст из соседних столбцов?


Кажется у меня кривые руки...
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39659625
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,

CONCAT ?
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39659628
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
katish444, попробую подробнее объяснить, что я хочу получить на примере предыдущей картинки
Чтобы за основу был взят главный интервал, а в его значении было указано помимо него еще и остальные значения с других столбцов, которые конечно попадают в этот основной интервал
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39659629
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK, я не успела дописать)))
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39659631
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444TaPaK, я не успела дописать)))
ответ всё равно не меняется
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39659632
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK, проблема в том, что надо чтобы не просто соседние ячейки слились, а чтобы они совпадали по интервалам
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39659636
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaKkatish444TaPaK, я не успела дописать)))
ответ всё равно не меняется
спасибо, кажется я знаю что я делала не так

:-)
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39659949
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select a.holeid, a.GEOLFROM, a.GEOLTO, 
a.VALUE + isnull('('+STUFF((
Select ', '+Cast(b.geolfrom as Varchar(10))+'-'+Cast(b.geolfrom as Varchar(10))+' '+b.value
 From GEODETAILS b 
Where a.holeid = b.holeid and b.name in ('Lith3_RockName','Alteration','Mineralisation' )
Order by b.GEOLFROM
FOR XML PATH(''), TYPE ).value('.','varchar(max)') 
,1,2,'')+')','')
from GEODETAILS a 
WHere a.name = 'Lith_RockName'
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39659976
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly, ого как круто!
спасибо большое. Сейчас буду разбираться что значат эти шайтан-команды
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39660001
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может всё же стоит найти периоды с неменяющимися показателями,
и вывести эти периоды в отдельные строки,
чем указывать подпериоды в столбцах значений?
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39660007
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так:
НачалоКонецLith_RockNameSec_RockNameAlt_RockNameMin_RockName05ПесчанникГлина58Песчанник830Алевролит3038АлевролитПереслаивание3850Алевролит50100Известняк100108Гравелиты108120Алевролиты120180АлевролитыМинерализация180190Алевролиты190200АлевролитыМинерализация
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39660009
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если еще и цветом выделить, то для анализа само то будет.
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39660728
Kursist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень топорно можно сделать так:

iif(field1 is null,' ', cast((field1) as char(15)) + iif(field2 is null,' ', cast(field2 as char(15))), ... iif(field_n is null,' ' + cast(field_n as char(15))))

только осторожно со значениями типа float
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39660740
Kursist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kursist,

Извините за белиберду - первое сообщение на форуме

Код: sql
1.
iif(field1 is null,Replicate(' ',15), cast(field1 as char(15))) + iif(field2 is null,Replicate(' ',15), cast(field2 as char(15))) + ... + iif(field_n is null,Replicate(' ',15), cast(field_n as char(15)))
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39661218
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,
а как узнать на каком месте минерализация, например на одном интервале бывает 3-4 разные минерализации, поэтому нужно знать интервал
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39661220
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня получилось. Большое всем спасибо
...
Рейтинг: 0 / 0
Возможно ли столбцы добавить в виде текста в другой столбец
    #39661239
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444а как узнать на каком месте минерализация, например на одном интервале бывает 3-4 разные минерализации, поэтому нужно знать интервал
Ну так и надо каждую минерализацию вывести в отдельный интервал и показать её в отдельной строке отчета.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возможно ли столбцы добавить в виде текста в другой столбец
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]