簡體   English   中英

將數字插入列 PSQL

[英]Insert numbers into a column PSQL

我有一個名為 Nums 的表,其中只有一個名為 text 的列。 我需要創建一個 PSQL 查詢,它將為 100000 到 199999 之間的每個數字插入一行。

Row number is 100000
Row number is 100001
Row number is 100002
...
Row number is 199999

顯然,如果范圍更小並且只有 10 個數字,則可以使用 10 個簡單的插入語句來完成,但事實並非如此。 我是 PSQL 的新手,想知道如何實現這一點? 是否需要某種循環?

您可以使用遞歸查詢。

with recursive cte as
(
  select 100000 as n
  union all
  select   n + 1
  from     cte 
  where    n < 199999 
)
select  * from cte;

試試這個dbfiddle

假設您的意思是數據庫的“Postgres”,請使用generate_series()

insert into nums (text)
    select n
    from generate_series(100000, 199999, 1) gs(n);

Postgres 會自動將n轉換為字符串——盡管將數字存儲為字符串似乎並不常見。 您也可以明確地使用select n::text

編輯:

如果您需要完整的字符串,它看起來像:

insert into nums (text)
    select 'Row number is ' || (n::text)
    from generate_series(100000, 199999, 1) gs(n);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM