如何根据传递值过滤条件中的列。Where条款中的条件 - SQL Server
例:
declare @number nvarchar(200)
set @number = '2ddafa3'
这里@number可能是int或uniqueIdentifer
所以在where子句我如何能如下实现的东西。
select * from IntegrationIDTransactions
where case ISNUMERIC(@number)
When 1 Then [TransactioniD] = @number
else [TransactionDomainGuid] = @number
感谢
对不起仍然得到错误: 消息206,级别16,状态2,行4 操作数类型冲突:唯一标识符是与INT 不相容的尝试: DECLARE @number为nvarchar(200) 组@number =' 5' SELECT * FROM IntegrationIDTransactions 其中@number =情况ISNUMERIC(@number) 当1然后[TRANSACTIONID] 别的[TransactionDomainGuid] 端 – Sreedhar 2009-08-20 06:41:48
右键,它需要在第一壳体分支的类型,并假定所有分支产生那种类型。编辑答案。 Remus Rusanu的答案会顺便表现得更好。 – Andomar 2009-08-20 08:46:23
再次感谢Andomar。 – Sreedhar 2009-08-20 21:52:20