[英]how to set unique name of each distinct values of a column in sql
我有一個包含重復值的列testVal
的表testTble
。 我可以使用DISTINCT(testVal)
找到列的每個唯一值。 但我想為列的每個唯一值設置一個特定的名稱。
喜歡:
我在我的數據庫中運行查詢並找到了那些不同的值。
SELECT DISTINCT(testVal) AS web FROM `testTble`
輸出:
web
169.254.15.169
10.0.0.91
192.168.80.47
10
現在我想設置這些值的唯一名稱,如下所示:
169.254.15.169
作為web21
10.0.0.91
作為web22
那么如何設置這樣的名稱呢?
在 MySQL 8+ 中,您可以使用row_number()
:
select test_val, row_number() over (order by test_val)
from t
group by test_val;
在早期版本中,您可以使用變量:
select test_val, (@rn := @rn + 1) as seqnum
from t cross join
(select @rn := 0) params
group by test_val;
在這兩種情況下,“名稱”都是一個數值,但這似乎與您想要做的一致。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.