首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用CASE执行sql语句时出错

使用CASE执行sql语句时出错
EN

Stack Overflow用户
提问于 2022-07-12 05:50:41
回答 2查看 30关注 0票数 -1

我正在将SQL语句创建为变量中的字符串,它应该以Deadline_week_test的形式返回一个新列,但它错误地引用了语句中的列名。

代码语言:javascript
运行
复制
DECLARE @ColName varchar(max) = 'Deadline'

DECLARE @test_column varchar(max) = 'CASE 
    WHEN DATEPART("dw",'+@ColName+') = 1 THEN "Sunday" 
    WHEN DATEPART("dw",'+@ColName+') = 2 THEN "Monday" 
    WHEN DATEPART("dw",'+@ColName+') = 3 THEN "Tuesday" 
    WHEN DATEPART("dw",'+@ColName+') = 4 THEN "Wednesday" 
    WHEN DATEPART("dw",'+@ColName+') = 5 THEN "Thursday" 
    WHEN DATEPART("dw",'+@ColName+') = 6 THEN "Friday" 
    WHEN DATEPART("dw",'+@ColName+') = 7 THEN "Saturday" 
    ELSE "NULL" END AS Deadline_week_test '

    
DECLARE @sql as nvarchar(max) = ('select '+@test_column+'from dbo.SalesHeader');

exec sp_executesql @sql

EN

Stack Overflow用户

发布于 2022-07-12 05:56:34

将我们的双引号替换为2个单引号。

代码语言:javascript
运行
复制
DECLARE @ColName varchar(max) = 'Deadline'

DECLARE @test_column varchar(max) = 'CASE 
    WHEN DATEPART(''dw'','+@ColName+') = 1 THEN ''Sunday'' 
    WHEN DATEPART(''dw'','+@ColName+') = 2 THEN ''Monday'' 
    WHEN DATEPART(''dw'','+@ColName+') = 3 THEN ''Tuesday'' 
    WHEN DATEPART(''dw'','+@ColName+') = 4 THEN ''Wednesday'' 
    WHEN DATEPART(''dw'','+@ColName+') = 5 THEN ''Thursday'' 
    WHEN DATEPART(''dw'','+@ColName+') = 6 THEN ''Friday'' 
    WHEN DATEPART(''dw'','+@ColName+') = 7 THEN ''Saturday'' 
    ELSE ''NULL'' END AS Deadline_week_test '

    
DECLARE @sql as nvarchar(max) = ('select '+@test_column+'from dbo.SalesHeader');

exec sp_executesql @sql
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72947584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档