Mam scenariusz, w którym chcę pobrać kolumny tabeli bazy danych z dwóch tabel, a następnie chcę pogrupować według nazwy tabeli,
na przykład
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.columns
WHERE table_name="lead"
UNION ALL
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.columns
WHERE table_name="CustomQuestion"
GROUP BY
Odpowiedzi:
3 dla odpowiedzi № 1Dlaczego grupa, nie masz agregacji? Myślę, że masz na myśli ORDER BY
select TABLE_NAME, COLUMN_NAME
from INFORMATION_SCHEMA.columns
where TABLE_NAME in ("CustomQuestion","lead")
order by TABLE_NAME, COLUMN_NAME
2 dla odpowiedzi nr 2
Na podstawie komentarzy, o co prosisz (tabelanazwa pojawia się tylko raz) to naprawdę więcej funkcji raportowania niż funkcji zapytania; co oznacza, że istnieje prawdopodobnie lepszy sposób na zrobienie tego niż zaklinowanie go w SQL.
Ale to nie znaczy, że ty żargon zaklinuj go w SQL, więc proszę:
select case when row_number() over(partition by table_name
order by column_name) = 1
then TABLE_NAME
else ""
end as TABLE_NAME
, COLUMN_NAME
from INFORMATION_SCHEMA.columns
where TABLE_NAME in ("CustomQuestion","lead")
order by TABLE_NAME, COLUMN_NAME