0

私はSQLが初めてなので、ご容赦ください。

共通のフィールドを持たない 2 つのテーブルを使用しています。次のような 2 つのテーブルに基づいて単純な階層を作成しようとしています。

   Table 1. 

Cul 1   Cul 2 
============== 
S10000  Name 
S20000  Name 1 
S30000  Name 2 
S40000  Name 3

 Table 2 

Cul 1   Cul 2  
=====================
A10000  Test 
A10001  Test 123 
A20000  Test 1
A20001  Test 999 
A30000  Test 2  
A30002  Test 5555 
A40000  Test 3   
A40006  Test 84384848

テーブル 1 と 2 の最初の列の一致する数値に基づいて、テーブル 1 の「名前」フィールドを表示するクエリを作成したいと思います。

したがって、表 1 が S10000 の場合、A1000 – テストを表示します。

それは可能ですか?

ありがとうございました

4

3 に答える 3

5

あなたの要件は正確には明確ではありませんが、これが必要なようです:

select t1.col1 t1Name,
  t1.col2 t1Value,
  t2.col1 t2Name,
  t2.col2 t2Value
from table1 t1
inner join table2 t2
  on substring(t1.col1, 2, 1) = substring(t2.col1, 2, 1)

SQL Fiddle with Demoを参照してください

編集、次も使用できます。

select t1.col1 t1Name,
  t1.col2 t1Value,
  t2.col1 t2Name,
  t2.col2 t2Value
from table1 t1
inner join table2 t2
  on substring(t1.col1, 2, len(t1.col1)) 
      = substring(t2.col1, 2, len(t2.col1));
于 2012-09-26T13:26:07.090 に答える
3
SELECT
   t2.*
FROM Table1 t1
INNER JOIN Table2 t2 on SUBSTRING(t1.Cul1,2,LEN(t1.Cul1)-1)=SUBSTRING(t2.Cul1,2,LEN(t2.Cul1)-1)
于 2012-09-26T13:30:32.693 に答える
0

最初の数字が数字で、その後に数字が続くことが確実な場合は、以下が機能するはずです

SELECT A.cul1,B.cul2 
FROM dbo.Table1 A, dbo.Table2 B
WHERE substring(A.cul1,2,len(A.cul1))= substring(B.cul1,2,len(B.cul1))
于 2012-09-26T13:29:56.393 に答える