使用SQL Server的转换逻辑

时间:2016-09-08 04:15:38

标签: sql sql-server transformation

我想更新一列。当值不在列表中或表中或不匹配时,它将返回" Not Account Related"当值在列表中时,该行将变为空白。所以这是我的疑问。

SELECT 
    CASE Project_Names
       WHEN "List_Value_Name".[LK_ProjectNames] = "Project_Names".[1] 
          THEN ''
          ELSE "Not Account Related"
    END
FROM 
    [master].[dbo].[1]

表格LK_ProjectNames,列List_Value_Name& table 1Project_Names。{/ p>

如果表格Project_Names列中的值LK_ProjectNamesList_Value_Name,则会返回空白。如果不是,它将返回Not Account Related

1 个答案:

答案 0 :(得分:0)

如果您将项目名称存储在table1中,则按行项目为基础。

SELECT *,
  CASE WHEN EXISTS(SELECT 1 FROM LK_ProjectNames l WHERE LTRIM(RTRIM(t.Project_Names)) =LTRIM(RTRIM(l.List_Value_Name)) ) THEN '' ELSE 'Not Account Related' END as RESULT
FROM table1 t

如果要将项目名称以逗号分隔存储在table1中。

SELECT *,
  CASE WHEN EXISTS(SELECT 1 FROM LK_ProjectNames l WHERE LTRIM(RTRIM(t.Project_Names)) like '%'+LTRIM(RTRIM(l.List_Value_Name))+'%' ) THEN '' ELSE 'Not Account Related' END as RESULT
FROM table1 t