首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL - Select only语句:如何创建类似于"Vlookup“的东西?

SQL - Select only语句:如何创建类似于"Vlookup“的东西?
EN

Stack Overflow用户
提问于 2018-03-29 19:38:59
回答 1查看 128关注 0票数 0

我对stackoverflow是个新手,所以希望我的措辞足够清楚。

我在sql服务器上有很多数据,只能使用SELECT语句来提取数据。我现在希望从部件名称中提取出特定的部件,这样我就可以看到我们使用了多少这种类型:

代码语言:javascript
复制
SELECT      CASE 
            WHEN Part.Part_No like '%B-123%' THEN 'B-123' 
            WHEN Part.Part_No like '%B-456%' THEN 'B-456' 
            WHEN Part.Part_No like '%IW-10%' THEN 'IW-10'
            WHEN Part.Part_No like '%T-TLT%' THEN 'T-TLT' 
            WHEN Part.Part_No like '%B-TLT3060%' THEN 'B-TLT3060' 
            ELSE NULL END AS Type
FROM   dbo.CATEGORY

因此,我想知道是否可以将这些行添加到表中,然后像VLookup一样遍历该表,而不是编写成百上千行。但我只能在select语句中执行此操作,而无需创建新表(我不太确定这对于临时表是如何工作的)。

有人有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 20:29:15

您可以使用CTE来管理您的查找表。然后,您可以使用LIKE作为连接子句来连接(左连接)您的表和查找表。

这个查询应该能做到这一点:

代码语言:javascript
复制
WITH cte AS (SELECT '%B-123%' AS a, 'B-123' AS b
              UNION SELECT '%B-456%', 'B-456' 
              UNION SELECT '%IW-10%', 'IW-10'
              UNION SELECT '%T-TLT%', 'T-TLT' 
              UNION SELECT '%B-TLT3060%', 'B-TLT3060')
SELECT c.b
  FROM dbo.CATEGORY t
  LEFT OUTER JOIN cte c
    ON Part.Part_No LIKE c.a

根据您的数据和表结构,它可能会为每一行获得多个结果(如果一个part_no匹配多个案例)。如果是这种情况,您可以使用表的主键上的GROUP BY进行限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49555093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档