我正在使用SQL Server 2005.我想将列中的值限制为唯一,同时允许NULLS.
我当前的解决方案涉及视图上的唯一索引,如下所示:
CREATE VIEW vw_unq WITH SCHEMABINDING AS
SELECT Column1
FROM MyTable
WHERE Column1 IS NOT NULL
CREATE UNIQUE CLUSTERED INDEX unq_idx ON vw_unq (Column1)
Run Code Online (Sandbox Code Playgroud)
有更好的想法吗?
我已将链表实现为自引用数据库表:
CREATE TABLE LinkedList(
Id bigint NOT NULL,
ParentId bigint NULL,
SomeData nvarchar(50) NOT NULL)
Run Code Online (Sandbox Code Playgroud)
其中Id是主键,ParentId是列表中上一个节点的Id.第一个节点有ParentId = NULL.
我现在想要从表中进行SELECT,按照它们应该出现的顺序对行进行排序,作为列表中的节点.
例如:如果表包含行
Id ParentId SomeData
24971 NULL 0
38324 24971 1
60088 60089 3
60089 38324 2
61039 61497 5
61497 60088 4
109397 109831 7
109831 61039 6
Run Code Online (Sandbox Code Playgroud)
然后使用标准对其进行排序,结果应该是:
Id ParentId SomeData
24971 NULL 0
38324 24971 1
60089 38324 2
60088 60089 3
61497 60088 4
61039 61497 5
109831 61039 6
109397 109831 7
Run Code Online (Sandbox Code Playgroud)
你应该使用SomeData colum作为控件,所以请不要作为SomeData的ORDER …