2016-11-16 6 views
0

NVARCHARの変数(バーコード文字列)を読み取らないコードシーケンスに問題があります。私たちは2つの異なるバーコードを持っています。私が設定した目録システムは元のフォーマット(7文字)のフォーマットだけを測定します。新しいバーコードは9文字です。私は各バーコード入力を介してループ値を実行する必要があるので、どのようにこのスクリプト行を設定しましたか。nvarchar変数の長さを読み取るSQLコード

元々、DATALENGTHまたはLEN関数で十分であると思っていましたが、文字列の7文字ではなく整数として変数を測定しているようです。誰かがどのように私のコードシーケンスや変数nvarcharの長さを測定する関数を操作する方法の入力がある場合、それは感謝以上です!

CASE WHEN @BarcodeID = LEN(7) 

THEN UPPER(LEFT(@BarcodeID,2))+CONVERT(nvarchar,RIGHT(@BarcodeID,5)[email protected]) 
ELSE UPPER(LEFT(@BarcodeID,3))+CONVERT(nvarchar,RIGHT(@BarcodeID,6)[email protected]) END 

また、最初のLEN(7)機能が私の問題であるようです。

+0

質問がここに隠れていますか? –

+0

はい、私は元の投稿を編集しました。ここに初めて投稿しました。通常、コードを書くのに助けが必要なときに、たくさんの素晴らしい情報を得ることができます。 –

答えて

2

はおそらく、あなたが何をしようとしていることは、あなたが基本的にLEN()機能、"Returns the number of characters of the specified string expression."それは暗黙のうちに7に変換されるため、@BarcodeID変数が1に等しいかどうかを確認するためにテストしている@BarcodeID = LEN(7)を使用することにより、実際に

CASE WHEN LEN(@BarcodeID) = 7 

です1文字の文字列。

+0

完璧に作業しました!どうもありがとうございます。 –

関連する問題