【发布时间】:2014-07-15 18:26:18
【问题描述】:
我在存储过程中有一个 SELECT 语句,它根据变量的值产生不同的 ORDER BY 结果:
ALTER PROCEDURE [dbo].[myProc]
@randomAnswers bit = 0
AS
SELECT
ab.answerID, -- int
ab.someCol -- nvarchar(max)
FROM
tbl_ABC ab
ORDER BY
CASE WHEN @randomAnswers = 1 THEN
NEWID()
ELSE
ab.answerID
END;
错误是
操作数类型冲突:uniqueidentifier 与 int 不兼容
我该如何克服这个问题?在其他网站上,我看到了非常相似的方法,没有错误。 谢谢。
【问题讨论】:
-
如果你将
answerID设置为uniqueidentifier类型不会产生错误,但既然有,你不能这样做。可以创建随机的int值吗?
标签: sql-server tsql sql-server-2012