要分析我导入的跟踪文件,它希望有一个唯一的值 Select Distinct TextData from myImportedTraceFile
尽管我不确定是否是创建唯一标识符的正确工具,但我尝试使用hashbyte 。MD5
即使是这种情况(如果是这样,请告诉我)然后我仍然有问题
- 使用
HASHBYTES('MD5', CAST(TextData AS varchar(7999))) As TextData_HashBytes
削减几行(见这个回复)
我该怎么做才能为Select Distinct TextData from ..
列中的每个唯一值 ()创建唯一标识符TextData
?
更新
根据 Dan 的帖子,我创建了这个测试用例
Drop Table #Temp
Create Table #Temp
(
A int,
B NText
)
Insert Into #Temp ( A, B)
Select 1, 'some space' UNION ALL
Select 2, ' some space' UNION ALL
Select 3, ' some space ' UNION ALL
Select 4, 'some space ' UNION ALL
Select 5, ' some space ' UNION ALL
Select 6, ' some space '
-- this returns 6 rows
Select
HASHBYTES('MD5', CAST(B AS nvarchar(MAX)))
, CAST(B AS nvarchar(MAX)) as B from #Temp;
-- this returns 3 rows
SELECT NEWID() AS UniqueID, B FROM
( Select DISTINCT CAST(B AS nvarchar(MAX)) AS B
FROM #Temp
) sq
这三行是结果
' some space ' -- 2sp B + 1sp E --> row 5
' some space' -- 1sp B + 0sp E --> row 2
'some space ' -- 0sp B + 3sp E --> row 4
目前尚不清楚如何处理第 1 行 (0sp)、3 (1sp B+E) 和 6 (2sp B+E)。所以一些空格被删除了。