Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql T-SQL重新构造将Case转换为CTE的SQL语句_Tsql - Fatal编程技术网

Tsql T-SQL重新构造将Case转换为CTE的SQL语句

Tsql T-SQL重新构造将Case转换为CTE的SQL语句,tsql,Tsql,我有一个案例陈述,比如- Case FormID When '1025' Then 'QFormName' (These are sub queries) When '3026' Then 'DFormName' Else 'FormName' End 'FormName' Case FormID When '1025' Then 'QDFormName' (These are sub queries) When '3026' Then 'DDFormName

我有一个案例陈述,比如-

Case FormID  
  When '1025' Then 'QFormName' (These are sub queries)

  When '3026' Then 'DFormName'

  Else 'FormName' End 'FormName'

Case FormID  
  When '1025' Then 'QDFormName' (These are sub queries)

  When '3026' Then 'DDFormName'

  Else 'DFormName' End 'DisplayFormName'
我还收到了另一份类似的声明

是否有任何方法可以使用语句顶部的CTE简化此SQL。 在那里我可以做类似的事情-

Case FormID
  When '1026' SET QFormName, SET QDFormName
从逻辑上讲,我可以在一个地方检查formID,并找到我想要找到的所有三个值


谢谢,

如果我了解您想要什么,您可以通过声明变量和使用批处理来实现。(一行中有多条sql语句。)


有没有可能您可以显示完整的查询或显示问题的简化版本?如果我确切知道您在做什么,就更容易解释。

tsql的风格-oracle或sql server?@Hogan-据我所知,只有Sybase和MS sql server具有
tsql
。我正在考虑使用一个表函数,并使用交叉应用运算符将其连接起来。这意味着您将把“子查询”和case语句移动到您可能不喜欢的函数中。但很高兴看到您的完整查询