web-dev-qa-db-ja.com

SQLステートメントから定数をどのように返しますか?

SQLステートメントから定数を返すにはどうすればよいですか?

たとえば、以下のコードを変更して、my(ブール式)がtrueの場合に「mymessage」が返されるようにするにはどうすればよいですか。

if (my boolean expression)
 "my message"
else
 select top 1 name from people;

私はmssql2000を使用しています

16
wusher

試しましたか:

select 'my message';
25
Ned Batchelder
select "my message" as message
7
Kon

私はMSSQLを手元に持っていませんが、間違った場合に備えてCASEステートメントの構文を確認してください。また、TOP 1をここに置いたときにケースの外側に配置するか、内部に配置するかがわかりません( ELSE TOP 1の名前)。アイデアは次のとおりです。

SELECT TOP 1 CASE WHEN myexpression = 'true' THEN 'my message' ELSE name END
FROM people;

ここで、myexpressionは定数であるか、クエリに存在するテーブルに関連している必要があります。たとえば、

CASE WHEN address LIKE '%Michigan%'

ここで、addressはテーブルpeopleの別のフィールドです。

PS:MSSQL CASE構文が見つかりました ここ :-)

4
Vinko Vrsalovic

これをAdventureWorksデータベースで試したところ、機能します

Use AdventureWorks

Declare @myVar int
SET @myVar = 1

if (@myVar = 2)

     select top 2 * from HumanResources.Department

else

     select top 1 * from HumanResources.Department
0
user35559
select top 1 name 
from people
where @MyParameter = whatever

union

select 'my message' as name
where @MyParameter != whatever

オールインワンステートメント。

0
Bert