零件表
零件等級
A
B
C
D
用戶表
用戶區域
東北
西北
華北
華中
華東
東南
西南
當零件等級A時可以匹配 東北、西北
當零件等級B時可以匹配 東北、西北、華北、華中、西南
當零件等級C時可以匹配 東南
當零件等級D時可以匹配 華中、西南
這個應該怎么實作?
uj5u.com熱心網友回復:
我需要一張關系表
CREATE TABLE #A(零件等級 VARCHAR(20))
INSERT INTO #A values('A')
INSERT INTO #A values('B')
INSERT INTO #A values('C')
INSERT INTO #A values('D')
CREATE TABLE #B(用戶區域 VARCHAR(20))
INSERT INTO #B values('東北')
INSERT INTO #B values('西北')
INSERT INTO #B values('華北')
INSERT INTO #B values('華中')
INSERT INTO #B values('華東')
INSERT INTO #B values('東南')
INSERT INTO #B values('西南')
Create table #C(零件等級 VARCHAR(20),用戶區域 VARCHAR(50))
INSERT INTO #C values('A','東北、西北')
INSERT INTO #C values('B','東北、西北、華北、華中、西南')
INSERT INTO #C values('C','東南')
INSERT INTO #C values('D','華中、西南')
select * from #A a,#B b
where (select COUNT(1) from #C c where c.零件等級 = a.零件等級 and c.用戶區域 like '%'+b.用戶區域+'%')>0
uj5u.com熱心網友回復:
我只有查詢資料庫的權限,有什么函式可以實作這個功能嗎?uj5u.com熱心網友回復:
建關系表 就該直接像樓上答案這樣建,而不是像他代碼那樣建關系表uj5u.com熱心網友回復:
今天誰也攔不住你建這個關系表
CREATE TABLE #A(零件等級 VARCHAR(20))
INSERT INTO #A values('A')
INSERT INTO #A values('B')
INSERT INTO #A values('C')
INSERT INTO #A values('D')
CREATE TABLE #B(用戶區域 VARCHAR(20))
INSERT INTO #B values('東北')
INSERT INTO #B values('西北')
INSERT INTO #B values('華北')
INSERT INTO #B values('華中')
INSERT INTO #B values('華東')
INSERT INTO #B values('東南')
INSERT INTO #B values('西南')
select * from #A a,#B b
where (select COUNT(1) from
(select 'A' 零件等級,'東北、西北' 用戶區域 union all
select 'B' 零件等級,'東北、西北、華北、華中、西南' 用戶區域 union all
select 'C' 零件等級,'東南' 用戶區域 union all
select 'D' 零件等級,'華中、西南' 用戶區域) c
where c.零件等級 = a.零件等級 and c.用戶區域 like '%'+b.用戶區域+'%')>0
uj5u.com熱心網友回復:
只有查詢權限就用臨時表或者表變數解決轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/232231.html
標籤:疑難問題
上一篇:pgsql創建函式
