Как выбрать только цифровые поля и только текстовое поле через консоль SQL? - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть таблица players, которая состоит из трех столбцов;

Первый: playerID: 1,2,3;

Второй: playerTeam: Honda,Ferrari,Mercedes;

Третье: Age: 22,29,31;

Мне нужно два запроса на запись.

Первый: вывести (ВЫБРАТЬ) все числовые поля из таблицы players.

Второе: вывести (ВЫБРАТЬ) все текстовые поля из таблицы players.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 24 февраля 2020

Первый Если вы хотите выбрать единственную цифру в столбце, вы можете сделать это

 SELECT column1 FROM table WHERE Isnumeric(column1);

Второй для выбора только текстового поля

SELECT usr_user_id FROM user WHERE usr_user_id REGEXP '[a-zA-Z]';
0 голосов
/ 24 февраля 2020

Это поможет собрать столбцы из базы данных, используя фильтр типов данных. Попробуйте это.

declare @stringcolumns nvarchar(4000)
declare @numbercolumns nvarchar(4000)

select @stringcolumns= 
    'select '+ stuff((select ','+name from sys.all_columns where object_id=object_id('players')
  and type_name(user_type_id) in ('varchar','nvarchar','char','nvarchar')
    for   xml path('')),1,1,'') + ' from players'

select @numbercolumns= 
   'select ' +  stuff((select ','+name from sys.all_columns where object_id=object_id('players')
  and type_name(user_type_id) in ('numeric','int')
    for   xml path('')),1,1,'') +' from players'

execute sp_executesql @stringcolumns
execute sp_executesql @numbercolumns

Чтобы изменить тип данных в соответствии с вашими требованиями в следующем разделе кода


type_name(user_type_id)  in ('varchar','nvarchar','char','nvarchar')
0 голосов
/ 24 февраля 2020

Просто напишите выбранные утверждения так, как вы их описали:

SELECT playerID, Age FROM players;
SELECT playerTeam FROM players;
...