Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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
Sql 在带有IN的CASE子句中选择_Sql_Database_Teradata - Fatal编程技术网

Sql 在带有IN的CASE子句中选择

Sql 在带有IN的CASE子句中选择,sql,database,teradata,Sql,Database,Teradata,我想这样做: SELECT CASE WHEN var in (SELECT var FROM var_table) THEN 'var1' ELSE 'var2' END AS myvar 但它对此表示不满。如何避免将var_表中的整个var列表粘贴到查询中。顺便说一下,这是Teradata 谢谢 试试这个 SELECT CASE WHEN var is null THEN 'var2' ELSE 'var1'

我想这样做:

SELECT 
      CASE WHEN var in (SELECT var FROM var_table) THEN 'var1'
      ELSE 'var2' 
      END AS myvar
但它对此表示不满。如何避免将var_表中的整个var列表粘贴到查询中。顺便说一下,这是Teradata

谢谢

试试这个

SELECT 
      CASE WHEN var is null THEN 'var2'
      ELSE 'var1' 
      END 
from var_table

您必须有一个非常旧的Teradata版本,因为自TD13以来就支持这样的标量子查询

即使支持它们,我也会尝试重写它们(在任何DBMS中,而不仅仅是TD中)。您的是一个隐藏的外部联接(假设它是包含from的查询的前几行):


这只是没有返回相同的结果。var_表中没有“hello”。我希望那个案子是“var2”。我看不出你的代码会是什么样子?
SELECT
   CASE WHEN t1.var IS NOT NULL THEN 'var1' ELSE 'var2' END AS myvar
FROM t1 LEFT JOIN var_table AS t2
ON t1.var = t2.var