Ich bekomme alle meine Spalte Details wie unten:Höchster und niedrigster Wert aus der Tabelle SQL Server
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'table1'
AND DATA_TYPE IN ('int','decimal','numeric')
meine Tabellenstruktur ist wie folgt:
CREATE TABLE [dbo].[table1](
[col1] int not NULL,
[col2] [numeric](7, 0) NULL,
[col3] [varchar](30) NULL,
[col4] [varchar](8) NULL,
[col5] [varchar](2) NULL,
[col6] [varchar](8) NULL,
[col7] [varchar](3) NULL,
[col8] [varchar](7) NULL,
[col9] [varchar](5) NULL,
[col10] [varchar](8) NULL,
[col11] [numeric](7, 0) NULL,
[col12] [numeric](7, 3) NULL,
[col13] [numeric](7, 2) NULL,
[col14] [decimal](7, 2) NULL,
[col15] [varchar](1) NULL,
) ON [PRIMARY]
Hier einige Beispielwerte, wenn ich ‚m Abfrage tabelle1
col1 col2 col11 col12 col13 col14
------------------------------------------------------------
1 10.0 80.00 10.000 12.00 90.00
2 70.0 10.00 97.960 14.00 10.00
3 30.00 12.00 14.000 115.00 11.00
4 40.00 11.00 15.000 15.80 12.00
wollte ich mein Ergebnis sein wie:
for max:
Table_name max_col_name max_col_value max_col_value_length
---------------------------------------------------------------------
table1 col3 115.00 6
for min value:
Table_name min_col_name min_col_value min_col_value_length
---------------------------------------------------------------------
table1 col1 1 1
Wie kann ich das erreichen?
Ich glaube, Sie müssen einige dynamische SQL hier finden, da die Abfragen selbst, die die min/max finden Werte müssen im laufenden Betrieb generiert werden. –
Was versuchen Sie zu lösen? Weil eine Aufgabe wie diese besser in einer Codelayer außerhalb von SQL behandelt werden könnte, da es sich nicht wirklich um eine relationale Operation handelt? –
Ich habe Tabellen von mehr als 20Million records jeder und statt Suche und Suche eins nach dem anderen möchte ich eine Abfrage geben mir das Ergebnis wie in der Frage. – AskMe