1

たとえば、私のsqlコマンドはこれを返します

 01234567

では、どのようにしてテキストを挿入して、ステートメントの最後にこれを返すことができるでしょうか。したがって、複数の値を返すと、TEXTは最後にのみ表示されます。

 01234567TEXT

私は援助のためにあまりにも多くのオンラインを見つけることができないようですが、私はこれが可能であることを知っています。私の現在のSQLコマンドは次のとおりです。

 SqlCommand command = new SqlCommand("SELECT PID = RIGHT(REPLICATE('0',8) + CAST(PID AS VARCHAR(8)),8) FROM dbo.MDRMASTER WHERE PARENTPID = @PARENTPID",con);

どんな助けや正しい方向へのポイントも素晴らしいでしょう。どうもありがとう

更新私は最初に質問を間違って言いました。最後の声明の最後に言っておきます。それを片付けてくれたSivaに感謝します。でもみんな親指を立てました。皆さんの助けに感謝します。

4

6 に答える 6

4

結果の最後に文字列を連結するだけです。

追加:

+ 'TEXT'

そして、SQLコマンドは次のようになります

 SqlCommand command = new SqlCommand("SELECT PID = RIGHT(REPLICATE('0',8) + CAST(PID AS VARCHAR(8)),8) + 'TEXT' FROM dbo.MDRMASTER WHERE PARENTPID = @PARENTPID",con);

あなたの編集に基づいて、最終レコードに TEXT のみを追加したいと思います。その場合、次のことができます。

create table temp
(
    field varchar(10)
)

insert into temp values ('12345678')
insert into temp values ('23456789')
insert into temp values ('34567890')
insert into temp values ('45678901')
insert into temp values ('56789012')

select field
from temp
WHERE field != (SELECT Max(field) from temp)
UNION
select field + 'TEXT'
from temp
WHERE field = (SELECT Max(field) from temp)

drop table temp

最後の行として TEXT だけが必要な場合は、次のようにします。

create table temp
(
    field varchar(10)
)

insert into temp values ('12345678')
insert into temp values ('23456789')
insert into temp values ('34567890')
insert into temp values ('45678901')
insert into temp values ('56789012')

select field
from temp
UNION
select 'TEXT'

drop table temp

あなたのSQLCommandは

SqlCommand command 
    = new SqlCommand("SELECT PID = RIGHT(REPLICATE('0',8) + CAST(PID AS VARCHAR(8)),8) 
                      FROM dbo.MDRMASTER 
                      WHERE PARENTPID = @PARENTPID 
                      UNION 
                      SELECT 'TEXT'",con);
于 2012-05-02T13:45:55.950 に答える
4

データベース値が文字列の場合、連結はこれと同じくらい簡単です...

SELECT T.col + 'TEXT'
FROM Table AS T

データベース値が文字列でない場合、次のように、連結する前にキャストする必要がある場合があります...

SELECT CAST(T.col AS nvarchar)  + 'TEXT'
FROM Table AS T

あなたのコードから、それはこのようになります...

SqlCommand command = new SqlCommand("SELECT RIGHT(REPLICATE('0',8) + CAST(PID AS VARCHAR(8)),8) + 'TEXT' AS PID FROM dbo.MDRMASTER WHERE PARENTPID = @PARENTPID", con);
于 2012-05-02T13:47:23.733 に答える
3

SQLにテキストを追加するだけです-

SqlCommand command = new SqlCommand("SELECT PID = RIGHT(REPLICATE('0',8) + CAST(PID AS VARCHAR(8)),8) + 'TEXT' FROM dbo.MDRMASTER WHERE PARENTPID = @PARENTPID",con);
于 2012-05-02T13:45:44.020 に答える
2

SQLステートメントで " +" 演算子を使用するだけです。SELECT

SELECT PID = RIGHT(REPLICATE('0',8) + CAST(PID AS VARCHAR(8)),8) + 'TEXT'

これにより、コードは次のようになります。

SqlCommand command = new SqlCommand(@"SELECT PID = RIGHT(REPLICATE('0',8) + CAST(PID AS VARCHAR(8)),8) 
                                      FROM dbo.MDRMASTER 
                                      WHERE PARENTPID = @PARENTPID"
    ,con);

Transact SQL での文字列連結に関する MSDN の記事を参照してください。

于 2012-05-02T13:46:03.843 に答える
2

私の理解が正しければ、結果の最後にテキストが必要です。次に、を実行する必要がありますUNION

コード:

SqlCommand command = new SqlCommand("
SELECT PID = RIGHT(REPLICATE('0',8) + 
CAST(PID AS VARCHAR(8)),8) 
FROM dbo.MDRMASTER 
WHERE PARENTPID = @PARENTPID 
UNION SELECT 'TEXT'",
con);
于 2012-05-02T13:55:57.720 に答える