selectステートメントでフィールド値として使用される場合、1または0をビットとして表すことは可能ですか? 例えば この場合、ステートメント(selectステートメントの一部)はICourseBasedの型がintです。 case when FC.CourseId is not null then 1 else 0 end as IsCoursedBased それをビット型にするには、両方の値をキャストする必要があります。 case when FC.CourseId is not null then cast(1 as bit) else cast(0 as bit) end as IsCoursedBased 毎回キャストすることなく、値をビット型として表現する簡単な方法はありますか? (私はMS SQL Server 2005を使用しています)
構造体内のビットフィールドの順序はプラットフォーム固有であると読みました。異なるコンパイラ固有のパッキングオプションを使用した場合、データが書き込まれるときに正しい順序で保存されることが保証されますか?例えば: struct Message { unsigned int version : 3; unsigned int type : 1; unsigned int id : 5; unsigned int data : 6; } __attribute__ ((__packed__)); GCCコンパイラを搭載したIntelプロセッサでは、フィールドは示されているようにメモリに配置されていました。Message.versionバッファの最初の3ビットであり、Message.typeその後に続きます。さまざまなコンパイラで同等の構造パッキングオプションを見つけた場合、これはクロスプラットフォームになりますか?