当社の環境でデータを選択するためのスクリプトを作成した状況があります。そのようにして、私はあるケースでパターンマッチングと文字のストリッピングに関数を使うことにしました。CASE WHENの機能を削除するのに手助けが必要
しかし、私たちのクライアントの1人は私たちのローカル環境にデータを入れさせたくないので、私は自分の環境で実行できるようにスクリプトをマッサージする必要があります。機能を削除して、私はそれをするために何かを動かす必要があるかについて考えるのが苦労しています。
関数呼び出しの例は次のようになります
Prp
データ入力ためプロパティタイプを含み、
SerialNumber
シリアル番号を含む列である列だけでなく、他のいくつかのランダムなガベージある
SELECT ....
CASE WHEN Prp = 'Key Cabinet'
AND SerialNumber IS NOT NULL
AND dbo.fnRemoveNonNumericCharacters(SerialNumber) <> ''
THEN dbo.fnRemoveNonNumericCharacters(SerialNumber)
....
INTO #EmpProperty
FROM ....
お粗末だった。
関数の定義は次のとおりです。
@strText
は私が渡してい
SerialNumber
ある
WHILE PATINDEX('%[^0-9]%', @strText) > 0
BEGIN
SET @strText = STUFF(@strText, PATINDEX('%[^0-9]%', @strText), 1, '')
END
RETURN @strText
私はちょうど行うには良い方法を把握することはできませんので、私は分析麻痺で立ち往生することができますこの。私はソリューションごとに完全に言う必要はありません、おそらくちょうどあなたが知っている方向に私を指して動作することを知っている。いくつかのサンプルDDL/DMLが何かを混乱させたいのであれば教えてください。
例 'SerialNumber'の値は、CA100 (Trash bins)
,T110
,101B
です。 また、すべてのテキストやすべての数値など、他の種類の値もありますが、それらをフィルタリングしています。現在のパターニングマッチングは十分です。
その列に何がありますか?いくつかのデータの例を挙げることができますか? – scsimon
良い@scsimon!私はいくつかを入れた。 –