我正在使用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;
并获取按字母顺序排列的客户名称。有这样的关键字吗?
答案 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个产品名称,价格和数量。