在Where 子句或替代选项中使用别名?

2023-12-11

我如何让它工作,它可以在没有Where子句的情况下工作,否则使用Where子句,我会得到明显的错误,但这基本上是需要做的,有人知道如何解决这个问题吗?

select ID, 
       Name,
       case T.N 
         when 1 then City1
         when 2 then City2
         when 3 then City3
       end as City,
       case T.N 
         when 1 then State1
         when 2 then State2
         when 3 then State3
       end as State
from YourTable
  cross join (values(1),(2),(3)) as T(N)

    Where City is NOT Null

不能在 WHERE 子句中使用别名。要么重复表达式(混乱),要么将 SELECT 放入子查询中,然后将 WHERE 子句放入外部查询中:

SELECT Id, Name, City, State
FROM
(
     SELECT
         ID, 
         Name,
         CASE T.N 
             WHEN 1 THEN City1
             WHEN 2 THEN City2
             WHEN 3 THEN City3
         END AS City,
         CASE T.N 
             WHEN 1 THEN State1
             WHEN 2 THEN State2
             WHEN 3 THEN State3
         END AS State
     FROM YourTable
     CROSS JOIN (VALUES(1),(2),(3)) AS T(N)
) T1
WHERE City IS NOT NULL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Where 子句或替代选项中使用别名? 的相关文章

  • T-SQL:用最新的非空值替换 NULL 的最佳方法?

    假设我有这张表 id value 1 5 2 4 3 1 4 NULL 5 NULL 6 14 7 NULL 8 0 9 3 10 NULL 我想编写一个查询来替换任何NULL值与表中最后一个不为空的值在那一栏里 我想要这个结果 id va
  • 在 SQL Server 上执行分页的最佳方式是什么?

    我有一个数据库超过200万记录 我需要执行分页以在我的 Web 应用程序上显示 该应用程序每页必须有 10 条记录DataGrid 我已经尝试使用ROW NUMBER 但是这种方式会选择所有 200 万条记录 然后只得到 10 条记录 我也
  • 如何在 SQL Server 中连接

    我的数据库没有特定的列 因此我通过开关在查询中创建了一个列 我需要的是将此列与数据库中的另一列连接起来 select certificateDuration DurationType case when certificateDuratio
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 当您在 SQL Server 中创建新登录名时,它默认选择 db_owner

    我在 SQL Server 2008 R2 中创建新的 SQL 用户时遇到一些问题 当我使用 SQL Server Management Studio 时 它会检查db owner默认情况下的角色成员资格 我只想创建一个具有只读访问权限的新
  • SSRS - 组表达总数总计

    我的小组总数是一个减去最后一个的表达式 Hours1 从一开始的价值 Hours1 团体的价值 EquipmentName1 数据集 dataset1 我需要一个总计 即每件装备的组表达总计 我无法使用相同的公式从数据集 dataset1
  • 从 SQL Server 获取索引创建日期

    如何找到索引的创建日期 我在用SQL2008 R2 我检查了sys indexes但它没有创建日期 所以我加入了查询sys objects 问题是索引的对象 ID 和包含该索引的表是相同的 我正在使用这个查询 select i name i
  • 我怎样才能获得特定的结果块?

    是否可以检索特定范围的结果 我知道如何执行 TOP x 但我将检索的结果太大并且会超时 我希望能够选择前 10 000 个结果 然后选择接下来的 10 000 个结果 依此类推 这可能吗 WITH Q AS SELECT ROW NUMBE
  • sql server 如果不存在则插入并获取插入的id到另一个表中

    我是 SQL Server 新手 正在开发一个记录日志的项目 该表有一个 URL 列 varchar max 它具有重复值 我创建了另一个表 它仅存储不同的 URL ID 存储在主表中 这是我执行此操作的存储过程 CREATE TABLE
  • 将一个范围分组到一个范围

    我有一张桌子 tblUnit ID Name PriceFrom PriceTo 1 Audi 170 340 2 BMW 250 290 3 Ford 275 500 4 Kia 110 250 5 VW 135 460 然后我预先定义了
  • 对于.NET DateTime类型,为什么推断的数据库类型是SqlDbTypes.DateTime而不是SqlDbTypes.DateTime2?

    对于 NET DateTime类型 为什么推断的数据库类型是SqlDbTypes DateTime而不是SqlDbTypes DateTime2 See http msdn microsoft com en us library yy6y3
  • SQL LIKE 运算符在应该显示任何结果时没有显示任何结果

    我有一个包含大量信息的车辆表 但其中一列是 MSSQL 表中的 所有者 但我使用时无法选择其中一个所有者LIKE但如果我可以使用 Silkeborg Distributionscenter 是所有者 是的 表和参数中都有一个双空格 所以参数
  • sql查询中where子句中的CASE语句

    我正在尝试在我正在处理的查询的 where 子句中编写一个 case 语句 我正在水晶报告中导入代码 我基本上是想说明变量 类型 是否设置为 创建 以便在where子句中为该日期范围运行 否则为不同的日期范围运行 它一直给我一个错误 我似乎
  • SQL:从单个查询列出多对多

    我有 3 个表 分别代表 Users Roles 和多对多 UsersInRoles 键为 UserId RoleId 相关列 用户名 角色名 在管理 html 应用程序中 我想显示所有用户及其所在角色的列表 我尝试从 SQL 构建一个将返
  • 仅选择一半记录

    我试图弄清楚如何选择 ID 为空的一半记录 我想要一半 因为我将使用该结果集来更新另一个 ID 字段 然后我将使用该 ID 字段的另一个值更新其余部分 所以本质上我想用一个数字更新一半记录 someFieldID 用另一个数字更新其余记录
  • 查找SQL记录中的并发用户数

    我有以下结构的表 UserID StartedOn EndedOn 1 2009 7 12T14 01 2009 7 12T15 01 2 2009 7 12T14 30 2009 7 12T14 45 3 2009 7 12T14 47
  • SQL Server 2014执行计划创建需要很长时间(旧版本中很快)

    我在 SQL Server 2014 中遇到一个查询问题 第一次运行该查询时 需要很长时间才能生成执行计划 奇怪的是 它在 SQL Server 的所有早期版本 2012 2008 R2 2008 等 中都运行良好 它似乎与所涉及的表之一上
  • 类型与创建 CLR 存储过程不匹配

    我在程序集中有一个如下所示的方法 namespace MyNameSpace public class MyClass Microsoft SqlServer Server SqlProcedure public static void M
  • 如何编辑表以启用级联删除?

    我有一个代表用户的表 当用户被删除时我得到 DELETE 语句与 REFERENCE 约束冲突 显然 CASCADE DELETE在SQL Server中并不像我想象的那么容易 需要将选项添加到表中 问题是 我不知道如何添加CASCADE
  • 简单的t-sql而不是触发器

    任何人都可以帮助解决简单的 t sql 脚本与板载触发器的问题吗 我使用非常简单的触发器将数据从一个表复制到另一个表 这些表之间没有关系 当我尝试在触发器创建后 从同一脚本 直接第一次插入数据时 我得到了所需的结果 但所有接下来的尝试都会失

随机推荐

  • GNU GAS:标签没有相对引用

    我正在写一个小引导扇区用于学习目的 这是boot S code16 text movw 0xB800 ax 0xB000 is the text screen video memory movw ax es set it as the es
  • 静态变量会阻碍数据缓存吗?

    From 用 C 优化软件 第 7 1 节 静态数据的优点是可以根据需要进行初始化 程序启动前的值 缺点是内存 整个程序执行过程中都会占用空间 即使 变量仅在程序的一小部分中使用 这使得数据 缓存效率较低 的用法static在此例外的是 它
  • 在 CUDA 统一内存多 GPU 或多处理器中使用原子算术运算

    我正在尝试实现一个使用统一内存的 CUDA 程序 我有两个统一的数组 有时它们需要原子更新 下面的问题有针对单 GPU 环境的答案 但我不确定如何扩展问题中给出的答案以适应多 GPU 平台 问题 cudaatomicAdd 示例无法产生正确
  • 爪哇芬威克树

    我尝试用 Java 实现 Fenwick 树 但没有得到预期的结果 这是我的代码 import java io import java util import java math class fenwick1 public static i
  • 需要为python打包jinja2模板

    更新 我提出了一个更好的问题和更好的答案here 我本来打算删除这个问题 但有些答案可能对未来的搜索者有用 我的问题与this 但这个答案很丑陋 需要一个目录结构 包括sharedtemplates templates templates
  • 在触发器中使用插入和删除的表

    我想编写触发器来处理插入和删除的表 我已经编写了插入触发器 CREATE TRIGGER FILL TABLE ON Person FOR INSERT AS DECLARE ID int SELECT ID p ID FROM Perso
  • 如何计算文档中的行数? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有这样的台词 我想知道我实际上有多少台词 09 16 39 AM all 2 00 0 00 4 00 0 00 0 00 0 00 0 00 0 00 94 00 09 16 4
  • C 中的逻辑运算不符合预期

    有人可以解释一下以下代码的功能吗 include
  • 如何在CSS中绘制循环箭头?

    如何使用 CSS 在中心绘制循环箭头和文本 如下图所示 我尝试过创建曲线箭头 但我不知道如何使其看起来像我想要的那样 arrow width 200px height 200px border 6px solid border radius
  • 通过 setup.exe 创建日志的 msiexec 参数不起作用

    我正在尝试从我的安装中获取使用以下命令的日志setup exe 我可以得到一个日志setup exe V l v c temp installlog txt 但我想通过x参数以及获取 额外的调试信息 当我尝试时setup exe V l v
  • 如何根据 swift 3 中的数组选择复选标记?

    我有一个数组 其中选定的名称将被存储并传递到视图控制器之前 当我需要转到上一个视图控制器时 则需要选择先前选择的复选标记 但在这里它启用了最后一个选定的元素 唯一的问题是如果我选择三个 那么它不是选择三个 它只是检查标记最后一个元素 但我需
  • C# 不通过返回类型推断重载方法

    我正在编写一个 C 程序来抓取目录并提供最后 CSV 行中的日期小于当前日期的文件列表 由于这是一个程序 因此我并没有真正花费太多时间使代码变得非常干净或任何东西 但这只是一个意见问题 我想 奇怪的是下面的一组代码片段 三个静态方法都在同一
  • AngularUI - 兼容的浏览器

    我尝试打开 AngularUI 网站 http angular ui github io 在 IE8 中 UI 在 IE8 中无法正确呈现 在最新版本的 chrome firefox 中工作正常 这促使我搜索 AngularUI 模块的浏览
  • IndexError:列表赋值索引超出范围 - 使用数组的 Python

    我最近开始使用 python 但对于该语言的很多东西我仍然是新手 这段代码应该打印一系列行 例如 47 815 47 54 48 065 57 45 我从几个文本文件 称为 2t1 2t19 3t1 3t19 作为输入以及结束后的文件名 每
  • Cheerio 不会等待正文加载

    我制作了一个非常简单的脚本 它抓取了一个食谱网站以获取标题 准备时间和成分 除了脚本无法抓取数组的每一页之外 一切工作正常 有时我得到 4 个 有时 2 个 有时甚至 0 个 看来脚本不会等待主体完全加载 我完全知道 Cheerio 不理解
  • 带有被安全/ASR 规则阻止的宏的工具 - 如何修复?

    我有一个 Excel 工具 xlsm 文件 我正在向用户传播 他们从我们的网站下载该文件 然后就可以使用它 简而言之 该工具有自己的菜单栏和一堆宏 例如进行计算 从 API 提取数据等 我使用 Unviewable 对用户隐藏代码 我用证书
  • 是否可以以编程方式检测 元素中的插入符位置?

    假设有一个常规的
  • 在python中比较两个字典以获得相似键的最大值

    我有这两个命令 a test1 90 test2 45 test3 67 test4 74 b test1 32 test2 45 test3 82 test4 100 如何提取同一键的最大值以获取新字典 如下所示 c test1 90 t
  • 使用delphi将PNGImage转换为灰度

    你好呀 这是我的代码 procedure TForm4 Button1Click Sender TObject var png TPNGImage data PRGBQarray p tagRGBQuad i o integer begin
  • 在Where 子句或替代选项中使用别名?

    我如何让它工作 它可以在没有Where子句的情况下工作 否则使用Where子句 我会得到明显的错误 但这基本上是需要做的 有人知道如何解决这个问题吗 select ID Name case T N when 1 then City1 whe