从身份证号提取生日并更新到生日字段中的SQL语句

update 学生信息 set 生日=substring(身份证号,7,4)+'-'+substring(身份证号,11,2)+'-'+substring(身份证号,13,2)
where LEN(身份证号)=18

 

update 学生信息 set 性别='男'
where LEN(身份证号)=18 and substring(身份证号,17,1)%2=1
update 学生信息 set 性别='女'
where LEN(身份证号)=18 and substring(身份证号,17,1)%2=0

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JSqlParser 可以很方便地从 SQL 语句提取表名和字段名。以下是一个简单的 Java 代码示例,可以从 SQL 语句提取出表名和所有字段名: ```java import java.util.List; import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.parser.CCJSqlParserUtil; import net.sf.jsqlparser.schema.Column; import net.sf.jsqlparser.schema.Table; import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.Select; import net.sf.jsqlparser.statement.select.SelectBody; import net.sf.jsqlparser.statement.select.SelectItem; import net.sf.jsqlparser.statement.select.SelectVisitorAdapter; public class TableAndColumnExtractor { public static void main(String[] args) throws JSQLParserException { String sql = "SELECT a.id, a.name, b.age FROM table1 a, table2 b WHERE a.id = b.id"; Statement statement = CCJSqlParserUtil.parse(sql); Select select = (Select) statement; SelectBody selectBody = select.getSelectBody(); selectBody.accept(new SelectVisitorAdapter() { @Override public void visit(PlainSelect plainSelect) { List<SelectItem> selectItems = plainSelect.getSelectItems(); for (SelectItem selectItem : selectItems) { selectItem.getExpression().accept(new SelectVisitorAdapter() { @Override public void visit(Column column) { System.out.println("Column name: " + column.getColumnName()); } }); } Table table = (Table) plainSelect.getFromItem(); System.out.println("Table name: " + table.getName()); } }); } } ``` 在上面的代码,我们首先将 SQL 语句解析为一个 Statement 对象,然后获取其的 Select 对象和 SelectBody 对象。接着,我们使用 SelectVisitorAdapter 类访问 SelectBody 对象,从提取出表名和字段名。最后,我们打印出了所有的字段名和表名。 需要注意的是,JSqlParser 还支持其他类型的 SQL 语句,例如 INSERT、UPDATE 和 DELETE,您可以根据需要进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值