在 SQL for VBA 的单个单元格下写入多次出现
Write multiple occurences under single cell in SQL for VBA
我正在为 VBA 开发 SQL。
通常,如果我们多次出现所需条件,则每次出现都会写在不同的单元格上,如下面的代码:
"SELECT CPID " & _
"FROM LCOND_LAST " & _
"WHERE WELL ='" & sht1.Cells(i + 3, 8) & "' " & _
"ORDER CPID"
这将给出输出:
请注意,有 2 个单元格可以写入两次。
我的问题是,我们可以只将它们写在单个单元格上吗?
有什么功能可以让我们这样做吗?
您可以按如下方式使用DISTINCT
:
"SELECT WELL, CPID " & _
"FROM LCOND_LAST " & _
"WHERE WELL ='" & sht1.Cells(i + 3, 8) & "' " & _
"ORDER BY PSWELLCOND_LAST.CPID"
DISTINCT
用于过滤重复行
从 here 了解更多关于 DISTINCT
的信息。
-- 更新
您可以使用CHR(10)
-- 换行符并聚合如下:
"SELECT LISTAGG(CPID, CHR(10)) WITHIN GROUP (ORDER BY CPID) " & _
"FROM LCOND_LAST " & _
"WHERE WELL ='" & sht1.Cells(i + 3, 8) & "' "
我正在为 VBA 开发 SQL。 通常,如果我们多次出现所需条件,则每次出现都会写在不同的单元格上,如下面的代码:
"SELECT CPID " & _
"FROM LCOND_LAST " & _
"WHERE WELL ='" & sht1.Cells(i + 3, 8) & "' " & _
"ORDER CPID"
这将给出输出:
请注意,有 2 个单元格可以写入两次。
我的问题是,我们可以只将它们写在单个单元格上吗? 有什么功能可以让我们这样做吗?
您可以按如下方式使用DISTINCT
:
"SELECT WELL, CPID " & _
"FROM LCOND_LAST " & _
"WHERE WELL ='" & sht1.Cells(i + 3, 8) & "' " & _
"ORDER BY PSWELLCOND_LAST.CPID"
DISTINCT
用于过滤重复行
从 here 了解更多关于 DISTINCT
的信息。
-- 更新
您可以使用CHR(10)
-- 换行符并聚合如下:
"SELECT LISTAGG(CPID, CHR(10)) WITHIN GROUP (ORDER BY CPID) " & _
"FROM LCOND_LAST " & _
"WHERE WELL ='" & sht1.Cells(i + 3, 8) & "' "