-2

User桌子

 UserId   UserName
   55     FirstUser
   22     SecondUser
    5     ThirdUser
   33     FourthUser

我有一个用户名“SecondUser”。

我想将“SecondUser”名称与UserName列匹配,之后我想得到它的index.

如何在 SQL Server 中找到indexof ?SecondUser

任何帮助将不胜感激。

谢谢。

4

2 回答 2

2

你的问题没有意义....你的索引是什么意思???您可以获取UserId与您的用户名关联的。但是你说的index是什么意思?SecondUser在您的情况下,索引是什么?

更新:好的 - 所以你想要一些订购。但是您希望您的数据按什么标准排序?您需要某种列 - 一个IDDateTime-可以在 子句中使用的某些东西。ORDER BY

SQL Server 本身没有任何隐式排序;如果您想进行任何排序(因此该顺序中的“索引”),您必须提供某种列来排序。

如果您确实有一个ID专栏 - 您可以执行以下操作:

;WITH BaseData AS
(
    SELECT 
        [UserId],
        [Index] = ROW_NUMBER() OVER(ORDER BY ID),
        UserName 
    FROM dbo.[User]
)
SELECT *
FROM BaseData
WHERE UserName = 'SecondUser'
于 2013-10-11T06:36:16.527 回答
-1

这是 SQLFiddel 演示

以下是示例查询:

select *,
       row_number() over (order by (select 0)) as 'Index'
  from [user]

注意:此答案仅适用于没有Clustered Index或表中的情况。如果您的表中有或在任何列上,则在查询时将在主键列或形成聚集索引的列上提供已排序行的输出。Primary Key[user]Primary KeyClustered IndexSelect * from [user]

于 2013-10-11T07:23:19.177 回答