add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
The Ugly Generated Query Is:
;WITH x AS (
SELECT [col h] = 'h',
   [type h] = 'varchar(240)',[h], [len h] = LEN([h]),
  [is_num h] = CONVERT(tinyint, ISNUMERIC([h])),
  [is_date h] = CONVERT(tinyint, ISDATE([h])),
  [has_dec h] = CASE WHEN ISNUMERIC([h]) = 1
    AND [h] LIKE N'%.%' THEN 1 ELSE 0 END,[col i] = 'i',
   [type i] = 'varchar(100)',[i], [len i] = LEN([i]),
  [is_num i] = CONVERT(tinyint, ISNUMERIC([i])),
  [is_date i] = CONVERT(tinyint, ISDATE([i])),
  [has_dec i] = CASE WHEN ISNUMERIC([i]) = 1
    AND [i] LIKE N'%.%' THEN 1 ELSE 0 END,[col j] = 'j',
   [type j] = 'varchar(320)',[j], [len j] = LEN([j]),
  [is_num j] = CONVERT(tinyint, ISNUMERIC([j])),
  [is_date j] = CONVERT(tinyint, ISDATE([j])),
  [has_dec j] = CASE WHEN ISNUMERIC([j]) = 1
    AND [j] LIKE N'%.%' THEN 1 ELSE 0 END,[$garbage$]='' FROM dbo.foo
)
  SELECT ColumnName = MIN([col h]),
  CurrentType = MIN([type h]),
  LongestValue = MAX([len h]),
  [AllNumerics?] = MIN([is_num h]),
  [AllDates?] = MIN([is_date h]),
  [AnyContainDecimal] = MAX([has_dec h]) FROM x
UNION ALL
  SELECT ColumnName = MIN([col i]),
  CurrentType = MIN([type i]),
  LongestValue = MAX([len i]),
  [AllNumerics?] = MIN([is_num i]),
  [AllDates?] = MIN([is_date i]),
  [AnyContainDecimal] = MAX([has_dec i]) FROM x
UNION ALL
  SELECT ColumnName = MIN([col j]),
  CurrentType = MIN([type j]),
  LongestValue = MAX([len j]),
  [AllNumerics?] = MIN([is_num j]),
  [AllDates?] = MIN([is_date j]),
  [AnyContainDecimal] = MAX([has_dec j]) FROM x
ColumnName CurrentType LongestValue AllNumerics? AllDates? AnyContainDecimal
h varchar(240) 4 1 0 1
i varchar(100) 3 0 0 0
j varchar(320) 17 0 1 0