DataGrip 导出数据 Groovy 脚本 MacOS

本文介绍了如何在MacOS上利用DataGrip结合Groovy脚本来提升工作效率。首先通过sdkman安装Groovy SDK,然后将其添加到IntelliJ IDEA中。接着,参照官方示例在IDE中编写Groovy脚本,实现数据导出功能。通过这种方式,可以便捷地将查询结果用于其他表的in查询条件。

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

  • 背景:日常工作中使用 DataGrip,有时需要将查的列值作为下一张表的 in 查询条件,借助下面的脚本可以提供效率

1、借助 sdkman 安装 Groovy SDK
2、将 Groovy SDK 添加至 IntelliJ IDEA (参考链接:Add Groovy SDK to IntelliJ IDEA
3、在 IntelliJ IDEA 中编写 Groovy(参考链接:官方示例

/*
 * Available context bindings:
 *   COLUMNS     List<DataColumn>
 *   ROWS        Iterable<DataRow>
 *   OUT         { append() }
 *   FORMATTER   { format(row, col); formatValue(Object, col) }
 *   TRANSPOSED  Boolean
 * plus ALL_COLUMNS, TABLE, DIALECT
 *
 * where:
 *   DataRow     { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
 *   DataColumn  { columnNumber(), name() }
 */

SEPARATOR = ","
QUOTE     = "'"

/**
 * 将选择数据转为一行
 * <p>建议选择一列转为一行,以逗号分隔
 * 转后结果 例如:820890,  820888,  820053,  820052
 */
first = true
ROWS.each { row ->
    COLUMNS.each { column ->
        value = FORMATTER.format(row, column)
        def isStringLiteral = value != null && FORMATTER.isStringLiteral(value, column)
        def isNumber = value.isNumber() && !isStringLiteral        
        OUT.append(first ? "" : SEPARATOR + " ")
                .append(isNumber ? " " : QUOTE)
                .append(value.replace(QUOTE, QUOTE + QUOTE))
                .append(isNumber ? "" : QUOTE)
        first = false
    }
    
}

4、编写完使用
在这里插入图片描述
参考链接:https://www.jetbrains.com/help/datagrip/2017.1/extending-the-datagrip-functionality.html?search=extending&_ga=2.158034234.1823904253.1584112760-1908885780.1558344487

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值