以下の tsql を置き換えることができる TSQL の単純な関数はありますか?
SELECT * FROM Users
WHERE (Username IS NULL OR Username != @username)
以下を書くこともできますが、ハードコードされたテキストのため、それは防弾ではありません!
SELECT * FROM Users
WHERE ISNULL(Username, 'dummytext') != @username
ありがとう、
以下の tsql を置き換えることができる TSQL の単純な関数はありますか?
SELECT * FROM Users
WHERE (Username IS NULL OR Username != @username)
以下を書くこともできますが、ハードコードされたテキストのため、それは防弾ではありません!
SELECT * FROM Users
WHERE ISNULL(Username, 'dummytext') != @username
ありがとう、
この場合、この状態を管理するためにUDFを使用する価値はないと思います。
(Username IS NULL OR Username != @username)
長さは43文字です
dbo.IsNullorNotEqual(Username, @Username)=0
長さは43文字です
もちろん、関数名を少し短くすることもできますが、関数呼び出しを短くするために慣例を破る価値はありません。
さらに、この場合にUDFを使用しないと、何が起こっているかを正確に確認できます。
ダニエルは良い質問をしました...
私の3セント:
!=
基づくと、 ANSIに準拠しています。<>
COALESCE()
代わりに使用できますISNULL()
が、インデックス:(を使用してブロックする機能は引き続き機能します。あなたが達成しようとしていることはよくわかりませんが、これは役に立ちますか?
スキーマのセットアップ:
create table Users(Username varchar(99));
insert into Users(Username) values('Alice');
insert into Users(Username) values('Bob');
insert into Users(Username) values(null);
クエリ 1 :
DECLARE @username varchar(99)
SET @username = 'Alice'
SELECT * FROM Users
EXCEPT
SELECT * FROM Users where Username = @username
結果:
| USERNAME |
------------
| (null) |
| Bob |