SQL 身份证获取性别

博客记录了一段SQL查询代码,从PRESCRIPTIONINFO和outpatientregistereq表中查询处方信息,包括处方号、姓名、身份证号、性别、结算时间、处方总金额和药品名称等,查询条件为指定医生和药品名称包含特定关键字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录如下,仅供参考: 

select p.prescriptionno 处方号,
        o.patientname 姓名,
        o.patientidno 身份证号,
        (CASE
          WHEN (LENGTH(o.patientidno)) = 15 THEN
           DECODE(MOD(SUBSTR(o.patientidno, 15, 1), 2), '0', '女', '男')
          WHEN (LENGTH(o.patientidno)) = 18 THEN
           DECODE(MOD(SUBSTR(o.patientidno, 17, 1), 2), '0', '女', '男')
        end) 性别,
        p.prescribetime 结算时间,
        p.prescriptionfee 处方总金额,
        p.hoschargeproname 药品名称
   from PRESCRIPTIONINFO p, outpatientregistereq o
  where p.reqid = o.id
    and p.prescribedoc = '手机号'
    and p.hoschargeproname like '%乳癖%';

在Java中,单纯地通过身份证号码来查询性别并不直接,因为身份证号码本身并不包含性别信息。中国居民的身份证号码是由18位数字组成,其中第17位是奇数表示男性,偶数表示女性。但是这个信息需要配合数据库中的对应映射才能获取,通常这些数据会存储在专门的人口信息系统或相关服务提供的API中。 如果你有一个已有的包含身份证号性别的数据库表或者API可以访问,你可以编写SQL查询来获取这些信息。例如,如果你有这样一个用户表`users`: ```sql CREATE TABLE users ( id INT PRIMARY KEY, id_number VARCHAR(18), gender CHAR(1) -- 'M' for male, 'F' for female ); ``` 你可以使用如下Java代码(假设已经导入了JDBC库)来查询: ```java import java.sql.*; public String getGenderById(String idNumber) { String url = "jdbc:mysql://localhost:3306/your_database"; String user = "your_username"; String password = "your_password"; try (Connection conn = DriverManager.getConnection(url, user, password); PreparedStatement stmt = conn.prepareStatement("SELECT gender FROM users WHERE id_number = ?")) { stmt.setString(1, idNumber); ResultSet rs = stmt.executeQuery(); if (rs.next()) { return rs.getString("gender"); } else { return null; // 或者抛出异常,表示未找到该身份证号 } } catch (SQLException e) { System.err.println(e.getMessage()); return null; } } ``` 请注意,这只是一个基本示例,实际操作中你需要处理连接错误、预编译语句等细节,并确保遵循安全最佳实践,比如避免硬编码敏感信息如数据库密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值