是否存在与UniQuery SAMPLE关键字等效的UniData SQL?

时间:2011-09-01 13:39:39

标签: sql unidata

我正在使用UniData 6.是否有与UniQuery SAMPLE关键字等效的UniData SQL?

使用UniQuery,我一直都能做到:

SELECT CUST BY NAME SAMPLE 1 

它会给我带有第一个字母名称的记录。

在UniData SQL中,我希望能够做到这样的事情:

SELECT NAME FROM CUST ORDER BY NAME SAMPLE 1; 

...或者,和其他SQL数据库一样......

SELECT TOP 1 NAME FROM CUST ORDER BY NAME; 

并获取按字母顺序排列的客户名称。有这样的关键字吗?

2 个答案:

答案 0 :(得分:2)

不幸的是,不,似乎没有与UniQuery SAMPLE关键字等效的UniSQL。 UniSQL由ANSI SQL-92标准的子集组成,其中包含一些支持多值的扩展。但是,ANSI SQL-92不包含用于限制查询返回的结果集的标准,这就是各种DBMS具有不同语法的原因。

ANSI SQL-2008添加了FETCH FIRST子句,这是实现查询返回的行数限制的标准方法。它需要一个非常重要的更新才能使UniSQL达到最近的标准,因为它现在落后了20多年。用户社区似乎没有足够的需求来进行这项工作。

根据您的文件架构,您可以应用变通方法。如果您使用的是自动递增键,则可以使用以下语法:

SELECT foo
FROM bar
WHERE @ID <= 10

上述查询将对返回的行数应用事实上的限制。

答案 1 :(得分:-2)

SELECT通常仅适用于记录ID。如果要列出属性,请尝试列出:例如LIST INVENTORY PROD_NAME PRICE QTY SAMPLE将返回前10个产品名称,价格和数量。