有一张数据库表中有一个证件号码字段,现在需要用hive sql 的case when 语句来判断这个字段中的证件号码是哪种证件类型。分别有居民身份证、护照、回乡证、香港居民证、台胞证。请写出完整的查询语句
时间: 2023-08-31 12:38:52 浏览: 217
各类证件号码验证
### 回答1:
SELECT
CASE
WHEN 证件号码 LIKE '%[0-9]%' THEN '居民身份证'
WHEN 证件号码 LIKE '%[A-Z]%' THEN '护照'
WHEN 证件号码 LIKE 'H%' THEN '回乡证'
WHEN 证件号码 LIKE '%[A-Z]%' THEN '香港居民证'
WHEN 证件号码 LIKE 'T%' THEN '台胞证'
ELSE '其他'
END AS 证件类型
FROM 表名;
### 回答2:
在Hive SQL中,可以使用CASE WHEN语句来判断数据库表中的证件号码字段属于哪种证件类型。以下是一个完整的查询语句示例:
```sql
SELECT
证件号码,
CASE
WHEN 证件号码 LIKE '1%' THEN '居民身份证'
WHEN 证件号码 LIKE 'P%' THEN '护照'
WHEN 证件号码 LIKE 'H%' THEN '回乡证'
WHEN 证件号码 LIKE 'C%' THEN '香港居民证'
WHEN 证件号码 LIKE 'T%' THEN '台胞证'
ELSE '未知证件类型'
END AS 证件类型
FROM
数据库表;
```
在上述查询语句中,我们首先选择证件号码字段和使用CASE WHEN语句创建一个名为"证件类型"的计算字段。根据证件号码的不同开头,我们使用LIKE操作符来判断对应的证件类型。如果证件号码以"1"开头,则认为是居民身份证;如果以"P"开头,则是护照;以"H"开头,则是回乡证;以"C"开头,则是香港居民证;以"T"开头,则是台胞证。如果证件号码不符合以上任何一种情况,则将证件类型设置为"未知证件类型"。
你可以将上述查询语句中的"数据库表"替换为实际的表名,然后执行该查询以获取符合条件的证件号码和对应的证件类型。
### 回答3:
可以使用以下Hive SQL的CASE WHEN语句来判断证件号码的类型:
```sql
SELECT
id,
CASE
WHEN 证件号码 LIKE '5%' THEN '居民身份证'
WHEN 证件号码 LIKE 'P%' THEN '护照'
WHEN 证件号码 LIKE 'H%' THEN '回乡证'
WHEN 证件号码 LIKE 'C%' THEN '香港居民证'
WHEN 证件号码 LIKE 'T%' THEN '台胞证'
ELSE '其他'
END AS 证件类型
FROM
表名;
```
在上述查询语句中,我们使用了CASE WHEN语句和LIKE语句来进行判断。根据要求,我们使用LIKE和通配符来匹配证件号码的开头字符来判断证件类型。如果证件号码以数字5开头,则表明是居民身份证;如果以字母P开头,则是护照;如果以字母H开头,则是回乡证;如果以字母C开头,则是香港居民证;如果以字母T开头,则是台胞证;其他情况下则归为“其他”类型。通过SELECT语句将查询结果展示出来,包括id列和新添加的证件类型列。
阅读全文