SQL Server:使用Case语句进行变量声明

用户名

我有一个带有以下输入变量的动态过程:

@selection nvarchar(20),
@searchCategory nvarchar(100) = '',
@searchTerm nvarchar(256) = '' 

该过程通常可以按预期工作-除非以下内容:如果searchCategory为“ dateRec”,则searchTerm格式为日期,相应的列为datetime,而其他所有内容均为nvarchar。

在SQL中,有什么方法可以使用Case或If语句或其他方式对变量声明设置最后一个变量,@searchTerm datetime就像@searchCategory =“ dateRec”一样,并且仅对于所有其他情况@searchTerm nvarchar(256),如上设置它

蒂姆,非常感谢您对此提供的帮助。

Bogdan Sahlean

1)如果无法更改该存储过程的参数,则可以使用两个具有正确数据类型的局部变量,从而:

...
DECLARE @localSearchTermDT DATETIME,
    @localSearchTermCHR NVARCHAR(256);

IF @searchCategory = 'dateRec'
    SET @localSearchTermDT = CONVERT(DATETIME, @searchTerm, ...)
ELSE
    SET @localSearchTermCHR = @searchTerm;

注意:此解决方案将阻止参数嗅探。

2)另一个解决方案是使用CAST / CONVERT这样:

...
Column1DT = CASE WHEN @searchCategory = 'dateRec' THEN CONVERT(DATETIME, @searchTerm, ...) END
...
Column2CHR = CASE WHEN @searchCategory <> 'dateRec' THEN @searchTerm END

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server Case语句和聚合功能

来自分类Dev

从CASE语句分配引用先前声明的变量的T-SQL变量

来自分类Dev

在SQL Server中使用case语句更新多列

来自分类Dev

SQL Server:长CASE语句的替代方法

来自分类Dev

使用PHP变量作为参数的CASE WHEN进行SQL UPDATE

来自分类Dev

使用CASE WHEN语句在SQL中进行更新

来自分类Dev

在SQL Server中将CASE与JOIN语句一起使用

来自分类Dev

使用case语句的条件进行SQL搜索

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

使用CASE语句进行SQL更新

来自分类Dev

在SQL Server中使用case语句选择SELECT AS

来自分类Dev

SQL Server:case语句中的昂贵查询

来自分类Dev

SQL Server TVP与Where / Case语句合并

来自分类Dev

嵌入在In子句中的SQL Server case语句

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

在SQL Server中使用select和case进行更新语句

来自分类Dev

如何在SQL Server中使用CASE语句

来自分类Dev

使用 case 语句的 SQL 连接

来自分类Dev

SQL Server PROCEDURE 变量声明

来自分类Dev

SQL Server 中使用 Case 语句的嵌套 If 语句

来自分类Dev

在 SQL Server 的 WHERE 子句中使用 CASE 语句

来自分类Dev

从 case 语句中添加行 - SQL Server

来自分类Dev

在 SQL Server 中使用嵌套的 CASE 语句

来自分类Dev

使用 SQL CASE 语句比较日期并进行乘法运算

来自分类Dev

动态添加case语句sql server

来自分类Dev

在 SQL Server 2008 中使用 case 语句减去 2 行

来自分类Dev

Sql Server 奇怪的 CASE 语句

来自分类Dev

在总和中嵌套 Case 语句 - SQL Server

来自分类Dev

在 SQL Server 的 case 语句中使用 set

Related 相关文章

热门标签

归档