-1

私のクエリにはアドレスと呼ばれるフィールドがあります。要件は次のとおりです。このアドレスが、アドレスを含む別のフィールドと等しい場合は、(*) のような指示を与えます。

例:

このフィールド: [住所、都市、州] を使用して連結されます。住所、都市、州は、テーブル内の異なるフィールドです。, を使用して連結しました。ここで、このフィールド全体が、住所、都市、州を含む別のフィールドと等しいことを確認したいと思います。

誰かサンプルクエリを教えてください

4

3 に答える 3

0

私があなたの質問を理解しているなら、これが解決策になるはずです:

SELECT
  CASE
    WHEN (SELECT COUNT(*) FROM AddressTable WHERE Address = a.Address) > 1 THEN '* ' + Address
    ELSE Address
  END
FROM AddressTable a
于 2012-12-28T20:05:40.383 に答える
0

私が正しく理解している場合、連結されたフィールドは個々のフィールドと同じテーブルにあり、レコードごとに値が一致するかどうかを確認しています。だとすると、こんな感じ

UPDATE [AddressTable] at
SET at.[Indicator] = '*'
WHERE at.[address,city,state] = at.[Address] + ',' + at.[City] + ',' + at.[State];
于 2012-12-28T18:54:15.527 に答える
0

私があなたを正しく理解しているなら、これはあなたのために働くはずです:

Select * From AddressTable at Where at.Address + ',' + at.City + ',' + at.State = @YourVariable

変数のいずれかがテキストベースでない場合は、次のように、連結する前にキャストする必要があります。

Cast(Name as NVarChar(max))
于 2012-12-28T18:45:50.447 に答える