SQL Case 语句正确的别名

标签 sql sql-server-2005

我有一个 SQL Server 2005 查询,在 Select 语句中使用 case 语句。我想知道“正确”的做法是什么。

每种格式似乎都工作得很好,但我想知道不同的选择之间是否存在一些冗余或其他东西。

示例格式:

SELECT 'isItemDisplayed' = CASE WHEN ... THEN ... END FROM myTable

SELECT isItemDisplayed = CASE WHEN ... THEN ... END FROM myTable

SELECT CASE WHEN ... THEN ... END AS isItemDisplayed FROM myTable

SELECT CASE WHEN ... THEN ... END AS 'isItemDisplayed' FROM myTable

SELECT CASE WHEN ... THEN ... END isItemDisplayed FROM myTable

最佳答案

引用 this 底部的示例页面,我会说:

SELECT CASE WHEN ... THEN ... END AS isItemDisplayed FROM myTable

因为它明确定义了 isItemDisplayed 作为名称。

我个人更喜欢:

SELECT CASE WHEN ... THEN ... END AS [isItemDisplayed] FROM myTable

因为它涵盖了保留字(即使您永远不应该将任何名称命名为与保留字相同),并且您可以包含空格。

根据this在博客中,不使用任何显式标识符(=As)是不好的做法。

除了 SSMS 将名称显示为不同的颜色之外,在别名周围使用单引号没有任何优势,也许可以使其突出?

关于SQL Case 语句正确的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19389355/

相关文章:

sql - 找出 SQL Server 数据库中总共存储了多少行的简便方法?

sql - 将大量列中的空单元格替换为 NULL 值

mysql - 向 MySQL 数据库的表中添加一列并使用默认值

python - 为什么我无法在此嵌套字典中创建其他键?

sql - 就预编译而言,语句与准备好的语句

SQL 条件求和

java - 为什么我的带有增量/减量的 SQL 更新查询不从 Derby 上的 Pentaho 执行?

sql - 条件选择语句

c# - sql连接字符串中 "Max Pool Size"的最大允许值是多少

java - 使用加载属性文件