我一直在玩这个查询已经有一段时间了,但我似乎无法让它在Oracle数据库中运行。我使用的SQLServer语法至少与SQLServer 2008一起使用(不了解早期版本)。
INSERT INTO WELCOME_PAGE_ITEMS
SELECT (SELECT COALESCE(MAX(ID), 0) + 1 FROM WELCOME_PAGE_ITEMS),
'panel-' + (SELECT CAST(COALESCE(MAX(ID), 0) + 1 AS VARCHAR(20))
FROM WELCOME_PAGE_ITEMS),
1,
(SELECT COUNT(PREFERED_ORDER) + 1
FROM WELCOME_PAGE_ITEMS
WHERE PREFERED_POSITION = 1),
0,
0,
'Custom Portlet',
1,
1,
3,
0
它给我带来了COALESCE函数以及'panel'+X
的字符串连接的问题。
提前致谢
答案 0 :(得分:0)
您的查询中有几个小问题:
||
(如@yamny所述)to_char()
将数字转换为字符串而不是CAST
应该让你前进的小例子(DUAL
只是我用于数据生成的虚拟表 - Oracle总是需要一个表到SELECT
来自:)
with welcome_page_items(id) as (
select cast(null as number) from dual
)
SELECT 'panel-' || to_char(coalesce(max(id), 0) + 1)
FROM welcome_page_items