Microsoft SQL 查询帮助

Posted

技术标签:

【中文标题】Microsoft SQL 查询帮助【英文标题】:Microsoft SQL query help 【发布时间】:2011-07-19 02:28:34 【问题描述】:

我正在尝试从另一个标量值函数 (fn_SeqAvgSimilarityUnderNode2) 调用表值函数 (dbo.fn_SelectAlignedSequences)。这是查询

Create Function [dbo].[fn_SeqAvgSimilarityUnderNode]
    (@AlnID int, @ParentTaxID int, @SeqTypeID int, @LocationID int) 
RETURNS FLOAT
AS
BEGIN
    Declare @AvgSim float

    ;With Seqs (SeqID) as
    (-- All aligned sequences under the node
        select dbo.fn_SelectAlignedSequences(@AlnID, @ParentTaxID, @SeqTypeID, @LocationID)
    )

    Select  @AvgSim = AVG(Similarity)
    From    (
                Select   s1.SeqID
                        ,s2.SeqID
                        ,dbo.fn_pairwiseSimilarity(@AlnID, s1.SeqID, s2.SeqID) as 'Similarity'
                From    Seqs s1 cross join Seqs s2
                Where   s1.SeqID < s2.SeqID
            ) t
    return @AvgSim
END

查询确实有效,但是当我调用函数 dbo.fn_SeqAvgSimilarityUnderNode 时,会弹出错误。

错误消息“找不到列“dbo”或用户定义的函数或聚合“dbo.fn_SelectAlignedSequences”,或者名称不明确。

是不是我做错了什么?

【问题讨论】:

【参考方案1】:

没有看到 dbo.fn_SelectAlignedSequences 的代码,我很确定您需要指定要选择的列。

改变这个

With Seqs (SeqID) as
    (-- All aligned sequences under the node
        select dbo.fn_SelectAlignedSequences(@AlnID, @ParentTaxID, @SeqTypeID, @LocationID)
    )

这样的事情

With Seqs (SeqID) as
    (-- All aligned sequences under the node
        select ColumnName FROM dbo.fn_SelectAlignedSequences(@AlnID, @ParentTaxID, @SeqTypeID, @LocationID)
    )

【讨论】:

以上是关于Microsoft SQL 查询帮助的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Access 数据透视表到 SQL Server 数据透视表

Pyspark 连接到 Microsoft SQL 服务器?

SQL 作业失败,因为驱动程序无效

Microsoft SQL - 查询与更新

Microsoft SQL Server查询分析器不能与本机连接?

是否可以在 Microsoft SQL Server 上为 SQL 查询设置超时?