0

ベンダーが管理するシュリンク包装された製品のデータベースには、人物のテーブルが含まれており、そのうちの何人かは別の子テーブルに写真を持っています。誰が写真を持っていて、誰が持っていないかを SQL ステートメントで判断し、フラグを立てる必要があります。

以下のように、行に画像値があるかどうかに応じて、画像列を 0 または 1 に変換する select ステートメントは何でしょうか?

データ:

photo
------------
null
@$@#$#@$#@$#&^$%^%53452^#$%#5...

結果:

photoFlag
-----------
0
1

もちろん、クライアントのコードで実行することもできますが、画像の値をネットワーク経由でクライアントのアドレス空間に持ち込みたくありません。

これ以上良いものは思いつきませんでした

SELECT CONVERT(CHAR(1), CONVERT(VARBINARY(MAX),photo)) AS photoFlag FROM photos

次に、クライアントで .IsNull を呼び出します。しかし、エレガントではないのでリンクしていません。

4

1 に答える 1

2

使ってみてはどうですかCASE()

SELECT CASE WHEN photo IS NULL THEN 0 ELSE 1 END AS photoFlag FROM photos
于 2013-09-21T14:31:27.523 に答える