1

2 つのフィールドとその間のテキストを連結するにはどうすればよいですか? 以下のすべてを試しましたが、何も機能しませんでした...

([fldCode1] || ':' ||[fldCode2]) AS Method

([fldCode1] + ':' + [fldCode2]) AS Method

([fldCode1] & ':' & [fldCode2]) AS Method
                                                *** & cannot be used with varchar 
4

4 に答える 4

7

これはうまくいくはずです

select [fldCode1] + ':' + [fldCode2]
from tab

または列が数値の場合

select cast([fldCode1] as varchar(100)) + ':' + cast([fldCode2] as varchar(100))
from tab
于 2013-07-31T20:08:11.400 に答える
3

最初と最後の形式は有効ではありませんが、列が文字列であると仮定すると、2 番目の形式は問題ありません。列が数値、日付などの場合は、最初に変換する必要があります。

SELECT Method = CONVERT(VARCHAR(255), fldCode1)
        + ':' + CONVERT(VARCHAR(255), fldCode2)
FROM ... 

それらが文字列であり、以下が機能しない場合:

SELECT Method = fldCode1 + ':' + fldCode2 FROM ...

次に、「機能しない」の意味をより明確に定義する必要があります...

于 2013-07-31T20:08:44.647 に答える
2

メソッドとして CONCAT('fldCode1',':','fldCode2') を選択します。

于 2013-07-31T20:12:00.257 に答える
0

2008 SQL SERVER 2008 以降 (ISNULL 関数を使用することを忘れないでください。そうしないと、null 列を連結しようとすると結果が null になります)。

SELECT ISNULL('myFirstString', '') + ' ' + ISNULL('mySecondString', '')

ISNULL 関数を使用したくない場合は、この方法で CONCAT_NULL_YIELDS_NULL を off に設定することもできます。

SET CONCAT_NULL_YIELDS_NULL OFF
SELECT 'myFirstString' + ' ' + 'mySecondString'

SQL SERVER 2012以降 それはそれと同じくらい簡単です

SELECT CONCAT ( 'Happy ', 'Birthday ', 11, '/', '25' )
于 2017-09-28T15:32:16.720 に答える