sql-server - SQL - 为 DISTINCT 记录分配唯一 ID

标签 sql-server

我需要创建包含两列的临时表:language_id(数字)和语言(文本)。我有一个包含我的语言列的客户表。我需要用我的语言列中的不同记录填充我的临时表,并且我需要能够为每个不同的语言记录分配一个 language_id。

我正在使用“SELECT DISTINCT Language from CustomerData”来获取不同的记录,但我不确定如何为每个不同的记录分配 language_id。

我想要的输出如下

Language ID     Language
1               English
2               French
3               Spanish

任何帮助将不胜感激。谢谢

最佳答案

按“CustomerData”数据上的“Language”进行简单分组,并使用 ROW_NUMBER() 分配 DISTINCT 行号:

select ROW_NUMBER() OVER( ORDER BY Language asc) as ID, Language
from CustomerData
group by Language

关于sql-server - SQL - 为 DISTINCT 记录分配唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41691931/

相关文章:

sql - 有没有办法访问 SELECT 语句中的 "previous row"值?

SQL 创建枢轴函数

c# - 在 asp.net core 中使用 NVarChar

java - 由于基于登录的服务器访问验证因基础结构错误而失败,因此无法连接到 MSSQL

c# - 创建用于创建新 SqlConnection 对象的工厂方法

sql-server - SELECT * INTO [新数据库].[表] FROM [其他数据库].[表]

sql - 大量行的表设计选项?

sql - 如何计算总小时数

SQL将多个值与同一张表中的各种值匹配

sql - 具有独立 where 子句的多列 - SQL Pivot?