2

したがって、次のような1つのテーブル(statename)に列があります:TBLOTHER(statename)

  • イダルゴ フェデラル ハイウェイ 130
  • メキシコ連邦ハイウェイ 130
  • プエブラ フェデラル ハイウェイ 130
  • ベラクルス-ラベ連邦ハイウェイ 130

別のテーブルの別の列には、連邦道路番号がなく、州名だけが TBLSTATE(name)

  • イダルゴ
  • メキシコ
  • プエブラ
  • ベラクルス・ラベ

tblstate(name) の列を tblother(name) と比較するにはどうすればよいですか? 名前が同じであることに基づいて、TBLSTATE の別の列の値を TBLOTHER にコピーしたい..ありがとう

4

3 に答える 3

3

多分このようなもの:

where tbl2.name like tbl1.name ||'%'

またはあなたはいくつかの派手なsubstr比較を行うことができます

于 2012-05-24T21:25:06.687 に答える
2

面白い。私は別のアプローチを取るだろう

where substr(tblother.statename, 1, len(tblstate.name)) = tblstate.name

つまり、2 つの文字列を実際の州名の長さまで比較します。

于 2012-05-24T21:45:20.123 に答える
0

のデータTBLOTHERがここと同じくらい規則的である場合、私の推測では、「連邦高速道路」のビットを取り除いてから比較するのが最も安全であると思います。つまり、

where tblstate.name = substr( tblother.statename, 
                              1, 
                              instr( tblother.statename, 'Federal Hwy' ) - 1 )

これは、ストレートを実行するよりも少し手間がかかりますが、「プエブラ」のような名前を付けたり、一方に他方が含まれているLIKE場合に役立ちます。Puebla-Foo

于 2012-05-24T21:39:13.230 に答える