SQL选择递增ID中的位置
我需要像这样在select中增加一个静态值SQL选择递增ID中的位置,sql,filemaker,Sql,Filemaker,我需要像这样在select中增加一个静态值 SELECT 'id-?' , field FROM table WHERE field IN (SELECT field FROM table2) 所以“?”表示静态值“id”从0到x的递增数 所以结果应该是这样的 id-1 AAA id-2 BBB id-3 CCC 其中第一个值(加上计数器)是静态值,第二个值来自数据库 请试试这个 select field , 'id-' + convert(varchar(10)
SELECT 'id-?' , field FROM table WHERE field IN (SELECT field FROM table2)
所以“?”表示静态值“id”从0到x的递增数
所以结果应该是这样的
id-1 AAA
id-2 BBB
id-3 CCC
其中第一个值(加上计数器)是静态值,第二个值来自数据库 请试试这个
select field
, 'id-' + convert(varchar(10), row_number() over (Order by field))
from table1 where field in (select field from table2)
您似乎想要:
select ('id-' || cast(row_number() over order by field)) as id, field
from table
where field in (select field from table2);
这使用ANSI标准语法。具体语法可能因数据库而异。试试这个
SELECT 'id-' + CONVERT(VARCHAR(10), ROW_NUMBER() OVER (ORDER BY field)), field
FROM table
WHERE field IN (SELECT field FROM table2)
如果与FileMaker ProExecuteSQL()一起使用,则行号是无效函数。SQL函数集是有限的。建议创建一个计算=
获取(记录编号)
并在查询中使用该字段。查看FileMaker社区上的以下线程:
您需要添加一个额外的计算字段,如@user9669471所述,id-x值的列名是什么?最简单的方法是使用Row_Number函数并对其进行分类。用您正在使用的数据库标记您的问题。my DBS及其Filemaker没有标记。