SQL SELECT WHERE IN递增ID

时间:2018-04-18 22:29:49

标签: sql filemaker

我需要在像这样的选择中增加一个静态值

SELECT 'id-?' , field FROM table WHERE field IN (SELECT field FROM table2)

所以"?"表示从0到x的向上计数,表示静态值" id"。

所以结果应该是

id-1   AAA
id-2   BBB
id-3   CCC

第一个值(加上计数器)是静态值,第二个值来自数据库。

5 个答案:

答案 0 :(得分:1)

如果与FileMaker Pro ExecuteSQL()一起使用,

ROW_NUMBER是无效功能。 SQL函数集是有限的。建议是创建一个计算= 获取(RecordNumber) 并在查询中使用该字段。

答案 1 :(得分:0)

请试试这个

select field
        , 'id-' + convert(varchar(10), row_number() over (Order by field))
from table1 where field in (select field from table2)

答案 2 :(得分:0)

您似乎想要:

select ('id-' || cast(row_number() over order by field)) as id, field 
from table 
where field in (select field from table2);

这使用ANSI标准语法。具体语法可能因数据库而异。

答案 3 :(得分:0)

在FileMaker社区上查看此主题:https://community.filemaker.com/thread/74404

您需要添加@ user9669471

所述的额外计算字段

答案 4 :(得分:-1)

试试这个

SELECT 'id-' + CONVERT(VARCHAR(10), ROW_NUMBER() OVER (ORDER BY field)), field 
FROM table 
WHERE field IN (SELECT field FROM table2)