2012-03-25 11 views
0

SQL selectクエリを使用して変数の値を取得しようとしています。ここには新しいものはありません。SQLでテキストとデータを取得する

SELECT p.ProductCode FROM Products_Joined AS p 

ただし、このような結果にテキストをプレフィックスとして付けることができるかどうかは疑問です。

SELECT 'XJ' + p.ProductCode FROM Product_Joined AS p 

だから、XJ2156ようになります。私は、データの前に定義された文字列を接頭辞につけようとしています。誰かがこれを達成する方法を知っていますか?

答えて

0

正しい方法は、あなたが質問で言ったまさにです:これが唯一の限りProductCodeがテキストタイプであるとして動作すること

SELECT 'XJ' + p.ProductCode FROM Product_Joined AS p 

注(varcharnvarchar ...)。それが数値なら
は、あなたが最初のテキストに変換する必要があります。

SELECT 'XJ' + CAST(p.ProductCode AS varchar(30)) FROM Product_Joined AS p 
+0

これは実際にテキストタイプです。*新しいものを試すことを恐れないでください。* – henryaaron

+0

@ user1090389:「恐れてはいけません」という部分はありません。 ? –

+0

それは自分のメモだった...はい、それは働いた、私はそれができるようになるとすぐに受け入れます – henryaaron

0

+の代わりにパイプを使用する必要があります。

 SELECT 'XJ' || p.ProductCode FROM Product_Joined AS p 
+0

私のミス..私は、Oracleデータベースの構文のためとして掲載された。.. :( –

+0

この答えを無視してください。 .. –

1

あなたのコードに問題があるのか​​わかりません。私はProductCodeがintだと思いますか? SQLは、「XJ」はint型に変換される原因狂気の暗黙のキャストのルールを持っている...ソリューション:

SELECT 'XJ' + convert(nvarchar(4000), p.ProductCode) FROM Product_Joined AS p 
関連する問題