截断 Bigquery 中某个值的前 5 个值
Truncate the first 5 values of a value in Bigquery
我有两个 table 正在尝试加入 bigquery。我加入他们的序列号,但对于 table 之一,序列号以 5 个零开头,而另一个则不是。我如何编写这个包含截断值的连接?
我可以在联接中执行此操作,还是必须事先执行此操作并将其另存为新的 table?
SELECT * FROM [dataworks-356fa:FirebaseArchive.PT_Results] AS Model_Results
JOIN [dataworks-356fa:FirebaseArchive.Master_List_PT] as Master_List on Serial=Serial_Number
有 5 个零的 table 是 PT_Results。
例如...
PT_Results 序列号 = 0000028106
Master_list_PT序列号#=28106
尝试将两列都转换为 int:
SELECT *
FROM
(
SELECT
SUBSTR(CAST(CAST(Serial AS INT) AS STRING), 1, 5) AS Serial,
Latest_Use,
Total_Hours,
Devices_Connected
FROM [dataworks-356fa:FirebaseArchive.PT_Results]
) AS Model_Results
JOIN
(
SELECT
SUBSTR(CAST(CAST(Serial_Number AS INT) AS STRING), 1, 5) AS Serial_Number,
Status,
Model_Number
FROM [dataworks-356fa:FirebaseArchive.Master_List_PT]
) AS Master_List
ON Model_Results.Serial = Master_List.Serial_Number
将 Serial
转换为整数应该从比较的角度删除前导零。请注意,我使用派生的 table 进行转换,因此 ON
子句仅涉及纯列而不涉及函数。
更新:
如果你想比较两个序列列的前五位数字在前导零被剥离后你可以尝试双重转换:
SUBSTR(CAST(CAST(Serial AS INT) AS STRING), 1, 5)
我有两个 table 正在尝试加入 bigquery。我加入他们的序列号,但对于 table 之一,序列号以 5 个零开头,而另一个则不是。我如何编写这个包含截断值的连接?
我可以在联接中执行此操作,还是必须事先执行此操作并将其另存为新的 table?
SELECT * FROM [dataworks-356fa:FirebaseArchive.PT_Results] AS Model_Results
JOIN [dataworks-356fa:FirebaseArchive.Master_List_PT] as Master_List on Serial=Serial_Number
有 5 个零的 table 是 PT_Results。
例如... PT_Results 序列号 = 0000028106 Master_list_PT序列号#=28106
尝试将两列都转换为 int:
SELECT *
FROM
(
SELECT
SUBSTR(CAST(CAST(Serial AS INT) AS STRING), 1, 5) AS Serial,
Latest_Use,
Total_Hours,
Devices_Connected
FROM [dataworks-356fa:FirebaseArchive.PT_Results]
) AS Model_Results
JOIN
(
SELECT
SUBSTR(CAST(CAST(Serial_Number AS INT) AS STRING), 1, 5) AS Serial_Number,
Status,
Model_Number
FROM [dataworks-356fa:FirebaseArchive.Master_List_PT]
) AS Master_List
ON Model_Results.Serial = Master_List.Serial_Number
将 Serial
转换为整数应该从比较的角度删除前导零。请注意,我使用派生的 table 进行转换,因此 ON
子句仅涉及纯列而不涉及函数。
更新:
如果你想比较两个序列列的前五位数字在前导零被剥离后你可以尝试双重转换:
SUBSTR(CAST(CAST(Serial AS INT) AS STRING), 1, 5)