WHERE
句はtrue
を返すとき、私はもちろん、簡単なSELECT ...SQL:レコードが見つからないときにすべてのNULLを返す方法
SELECT TETmeetingID,
DateID,
WeekNo,
TETID,
TradeStaffID,
EngStaffID,
MathsStaffID,
IoTStaffID,
Others,
TradeStaffPresent,
EngStaffPresent,
MathsStaffPresent,
IoTStaffPresent,
CurricTrade,
CurricEnglish,
CurricMaths,
CurricIoT,
CurricAlign,
Notes,
WeeksToGo,
TotalWeeks,
CreatedDate,
CreatedBy,
Complete,
CompletedDate,
CompletedBy
FROM tblTETMeeting
WHERE TETmeetingID = @SomeParameter
作品を持っています。
しかし、そうでなければ、少なくともすべての列にNULLを持つレコードを1つ表示したいと思う。
どうすればいいですか?上記の例では、使用できる列の数を表示するように選択しました。したがって、列を「決定」し、答えにハードコードする必要のないより一般的な問合せがある場合は、それが優先されます。
おかげ
UPDATE
私はWITH TIES
を試してみたが、それはまた、単一のレコードを返しませんでした。たぶん私はそれを間違っていた。私もUNION NULL, NULL,
などのトリックを試してみましたが、列数が未定義の場合は乱雑です。私はこれを正しく行うことができる唯一の方法ですが、私はまだCTE
型のクエリでNULLの正しい数を提供することを余儀なくされています。
WITH CTE ( SELECT TETmeetingID,
DateID,
WeekNo,
TETID,
TradeStaffID,
EngStaffID,
MathsStaffID,
IoTStaffID,
Others,
TradeStaffPresent,
EngStaffPresent,
MathsStaffPresent,
IoTStaffPresent,
CurricTrade,
CurricEnglish,
CurricMaths,
CurricIoT,
CurricAlign,
Notes,
WeeksToGo,
TotalWeeks,
CreatedDate,
CreatedBy,
Complete,
CompletedDate,
CompletedBy
FROM tblTETMeeting
WHERE TETmeetingID = @SomeParameter) AS tbl1
select * from CTE WHERE cte.TETmeetingID IS NOT NULL UNION SELECT NULL,NULL,NULL, etc
http:// stackoverflow。com/questions/8098795/return-a-value-if-no-record-is-found – whizzle
この種のことは、アプリケーション層ではなく、クエリで最もよく処理されます。 – sstan
これはSQLで行うべきではないと考えている以外は、IM/ELSEステートメントを使用するのが最も簡単な方法です(IMO)。例えば'存在する場合(tblTETMeeting WHERE TETmeetingID = @SomeParameterから1を選択してください)次に、myQuery ELSE SELECT NULL、NULL ... 'を選択します。あるいは、行が1つだけ期待される場合は、whizzleのリンクの回答が機能します。 – ZLK