小编kil*_*nen的帖子

如何在case语句中有超过100个条目作为变量

我写了一个有 > 100 个选项的 case 语句,在一个简单的查询中,我在 4 个地方使用了相同的语句。

相同的查询两次,它们之间有一个联合,但也在进行计数,因此 group by 也包含 case 语句。

这是为了重新标记某些公司名称,其中同一公司的不同记录拼写不同。

我试图将一个变量声明为 VarChar(MAX)

declare @CaseForAccountConsolidation varchar(max)

SET @CaseForAccountConsolidation = 'CASE 
       WHEN ac.accountName like ''AIR NEW Z%'' THEN ''AIR NEW ZEALAND''
       WHEN ac.accountName LIKE ''AIR BP%'' THEN ''AIR BP''
       WHEN ac.accountName LIKE ''ADDICTION ADVICE%'' THEN ''ADDICTION ADVICE''
       WHEN ac.accountName LIKE ''AIA%'' THEN ''AIA''
       ...
Run Code Online (Sandbox Code Playgroud)

当我在我的 select 语句中使用它时 - 查询只是将 case 语句作为文本返回并且没有对其进行评估。

我也无法在组中使用它 - 我收到以下错误消息:

Each GROUP BY expression must contain at least one column that is not …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server-2012

11
推荐指数
2
解决办法
2396
查看次数

如何在 SQL Server Management Studio 中折叠架构?

我不确定这是否可能,但我希望它是 - 我目前正在运行 SSMS 并且有一个数据库,它的数据全部“存放”在 DBO 模式中。我收到了建议(并且完全同意),最佳实践是创建与我们的业务功能相匹配的其他模式,我将继续推进。

我想知道是否有任何方法 - 即使是通过安装某种加载项,让架构崩溃,以便我可以隐藏所有 DBO 和 RPT 对象,直到我扩展架构 - 很多就像表格和其他文件夹被折叠一样。

如果这个问题不是本网站的“主题”,我深表歉意 - 但我认为这是最有可能知道答案的地方。

在我下面的屏幕截图中 - 我正在寻找要折叠的红色轮廓的位,现在只有 2 行 DBO - 以及我目前请求创建的 RPT:

在此处输入图片说明

sql-server ssms

10
推荐指数
1
解决办法
2462
查看次数

如何检查我的用户是否具有 CREATE SCHEMA 权限?

我在可以创建表和存储过程的数据库中有一个用户帐户。

我想确认此用户帐户是否可以创建模式 -无需先尝试。(我是金融的一部分,而不是 IT。)

如果我可以创建模式,那么我会请求 IT 许可继续这样做。

如果我不能,那么我将继续等待 IT 在我前段时间提出的服务台请求上执行此操作(叹气)。

有没有我可以在 SSMS 中运行的命令,它可以在不实际创建新模式的情况下告诉我这一点?

我还截取了该用户权限的几个屏幕截图 - 也许他们会有答案?

数据库权限 1

数据库权限 2

编辑:

运行下面 SQLServing 建议的 SQL 后,我得到了这个结果:

UserName    is_disabled principal_type_desc class_desc  object_name permission_name permission_state_desc
DWReports   0   SQL_USER    DATABASE    NULL    CONNECT GRANT
DWReports   0   SQL_USER    OBJECT_OR_COLUMN    GetSystemSQLAgentJobList    EXECUTE GRANT
Run Code Online (Sandbox Code Playgroud)

sql-server ssms sql-server-2012

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

sql-server ×2

sql-server-2012 ×2

ssms ×2

t-sql ×1