Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Данные из столбцов имя которых соответствует шаблону / 4 сообщений из 4, страница 1 из 1
24.12.2019, 15:46
    #39907538
r59
r59
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из столбцов имя которых соответствует шаблону
Как можно вывести инфу только из столбцов имя которых соответствует шаблону like 'GG%'
столбцов может быть разное количество

так нашел имена интересующих меня столбцов таблицы test1
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'test1'
and COLUMN_NAME like 'GG%'

как теперь добавить в селект эти результаты?

SELECT
t.Город
, <столбцы из прошлого запроса>
FROM test1 as t
...
Рейтинг: 0 / 0
24.12.2019, 16:26
    #39907561
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из столбцов имя которых соответствует шаблону
r59,

Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
CREATE TABLE [dbo].[test1]
             ([Город] VARCHAR(255) NOT NULL 
            , GG1     INT NOT NULL
            , GG2     INT NOT NULL
            , GG3     INT NOT NULL
            , G1      INT NOT NULL
            , G2      INT NOT NULL
            , G3      INT NOT NULL
             );

GO

INSERT INTO [dbo].[test1]([Город], GG1, G1, GG2, G2, GG3, G3)
SELECT 'Город 1', 1, 2, 3, 4, 5, 6 UNION ALL 
SELECT 'Город 2', 1, 2, 3, 4, 5, 6 UNION ALL 
SELECT 'Город 3', 1, 2, 3, 4, 5, 6 UNION ALL 
SELECT 'Город 4', 1, 2, 3, 4, 5, 6 UNION ALL 
SELECT 'Город 5', 1, 2, 3, 4, 5, 6 
GO
 
DECLARE @object_id INT           = OBJECT_ID('[dbo].[test1]')
      , @sql       VARCHAR(1000);

SELECT 
       @sql = 'SELECT [Город]'+
                               (
                                SELECT 
                                       ', '+QUOTENAME(c.[name])
                                FROM 
                                     sys.columns AS c
                                WHERE c.object_id = @object_id
                                      AND c.[name] LIKE 'GG%' FOR
                                XML PATH('')
       )+' FROM '+QUOTENAME(OBJECT_SCHEMA_NAME(@object_id))+'.'+QUOTENAME(OBJECT_NAME(@object_id));

EXECUTE (@sql);
GO 

DROP TABLE [dbo].[test1];
...
Рейтинг: 0 / 0
24.12.2019, 19:36
    #39907643
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из столбцов имя которых соответствует шаблону
entrypoint
r59,
Код: sql
1.
2.
CREATE TABLE [dbo].[test1]
... [dbo].[test1];



Не учи детей плохому.
Лучше расскажи им азы реляционной теории.
И открой свет истины: "так делать не надо."
...
Рейтинг: 0 / 0
25.12.2019, 12:31
    #39907846
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из столбцов имя которых соответствует шаблону
aleks222,

Пусть учатся на своих ошибках )))
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Данные из столбцов имя которых соответствует шаблону / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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