Неважно, какого типа ваш первичный ключ, так как левые / правые значения все равно будут целыми числами. например.
CREATE TABLE [dbo].[Demo](
[ID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_Demo_ID] DEFAULT (newid()),
[Name] [varchar](50) NOT NULL,
[Lft] [int] NOT NULL,
[Rgt] [int] NOT NULL,
CONSTRAINT [PK_Demo] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
- добавить тестовые данные
INSERT INTO demo(name,lft,rgt)
SELECT 'node1',1,6
UNION
SELECT 'node2a',2,3
UNION
SELECT 'node2b',4,5
- проверьте, работает ли
SELECT *
FROM demo
WHERE lft>=2
ORDER BY lft