empl_type_multiという名前の列はカンマ区切りの列です。各値は、カスタムキャプションと呼ばれる別の表へのリンクです。例えばTSQL、カンマ区切りの列の値を変更する
、私はempl_type_multiの値として次のものがあります:
123, RHN, 458
その後custom_captionsテーブルで、これらは個々の値のようになります。
123 = Dog
RHN = Cat
458 = Rabbit
これらのフィールドのすべてがNTEXTです。
123, RHN, 458
どれ
Dog, Cat, Rabbit
になる:私が何をしようとしています何
は、上記の例ではので、empl_type_multi列を変換し、custom_captionsテーブル内のそれぞれの名前にそれをチャンスですこれについての助けは大いに感謝されるでしょう。
----- EDIT ---------------------------------------- --------------------------
これで、値を対応するキャプションに変換してすべてを一時テーブルに入れることができました、次はテーブルの上にCTEクエリからの出力は、次のとおりです。
ID1 ID2 fName lName Caption_name Row_Number
10007 22841 fname1 lname1 DENTAL ASSISTANT 1
10007 22841 fname1 lname1 2
10007 22841 fname1 lname1 3
10008 23079 fname2 lname2 OPS WARD 1
10008 23079 fname2 lname2 DENTAL 2
10008 23079 fname2 lname2 3
キャプションの名の下に何がカンマで区切られたROW_NUMBER 1のキャプション名に追加されるように
どのように私はこれを更新することができますか?
私は私がする必要があるすべてはROW_NUMBER!= 1
すべてのレコードを削除していることを行うことができる場合------ EDIT --------------- -----------------------------------
最初の編集の解決策は次のとおりです。
WITH CTE AS
(
SELECT
p.ID1
, p.ID2
, p.fname
, p.lname
, p.caption_name--
, ROW_NUMBER() OVER (PARTITION BY p.id1ORDER BY caption_name DESC) AS RN
FROM tmp_cs p
)
UPDATE tblPerson SET empType = empType + ', ' + c.Data
FROM CTE c WHERE [DB1].dbo.tblPerson.personID = c.personID AND RN = 2
次に、影響を受ける行が0になるまでRN = 2をインクリメントしました。私が走った後
この
されました:DELETE FROM CTE WHERE RN != 1 AND Caption_name = ''
を削除するためにcase文を使用することができ、これを試してみてくださいデータ構造を正規化する必要があります。 – artm
これは私のデータベースではなく、私はそれを与えられ、このデータをExcelスプレッドシートにエクスポートするように指示しました。 –