Извлечь записи, содержащие все числа в строке - PullRequest
0 голосов
/ 07 мая 2020

У меня есть столбец строкового типа. В нем есть записи, которые представляют собой только числа в строке, а некоторые - настоящие строки. Я хочу извлечь записи, в которых в этом столбце есть все числа в строке.

Например,

column_A
abcd
1234
6754
defg
1100

Результат должен выглядеть так:

column_A
1234
6754
1100

Ответы [ 2 ]

2 голосов
/ 07 мая 2020

Я бы, наверное, использовал safe_cast():

select t.*
from t
where safe_cast(column_A as int64) is not null;
2 голосов
/ 07 мая 2020

Ниже приведено для BigQuery Standard SQL

#standardSQL
SELECT * 
FROM `project.dataset.table`
WHERE REGEXP_CONTAINS(column_A, r'^\d+$')   

Если применить к образцу данных в вашем вопросе, как в примере ниже

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'abcd' column_A UNION ALL
  SELECT '1234' UNION ALL
  SELECT '6754' UNION ALL
  SELECT 'defg' UNION ALL
  SELECT '1100' 
)
SELECT * 
FROM `project.dataset.table`
WHERE REGEXP_CONTAINS(column_A, r'^\d+$')   

, результат будет

Row column_A     
1   1234     
2   6754     
3   1100     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...