0
私のテーブルには、いくつかのdocNumシリーズがあります。パラメータを使用してレコードを取り出す方法は?
すべてのシリーズを条件付きで取得するか、セットから1つのシリーズを除外したいと考えています。
私は正しいクエリがどうあるべきか
declare @p char(1) = 1
select
t0.docNum
from
OINV t0
where
t0.DocNum = case
when @p <> '1' then t0.DocNum
else (select t1.DocNum
from oinv t1
where SUBSTRING(convert(varchar, t1.docNum), 1, 1) <> '9'
and LEN(convert(varchar, t1.docNum)) < 7)
end
をエラーを返し、次のクエリを試してみましたか?
どういうところでしたか? – zambonee
ここにはいくつかの問題があります。まず、文字列リテラルを '1'で定義する必要があります。その後、varcharに変換していますが、長さは指定しません。長さにはデフォルト値があり、用途に応じて変更されます。明示してください。そして、これは少し複雑になりますが、実際に何が起こっているのかは分かりません。エラーが出ているというだけでなく、エラーメッセージを投稿した場合に役立ちます。 –
SQLの学習を始めたばかりのときには、完全なクエリを何度も間違えて書くのではなく、すべての文に対してクエリを実行することをお勧めします。私はそれが最初の行で失敗することがわかります。 – Eric