22

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

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

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

私はmssql2000を使用しています

4

5 に答える 5

35

試しましたか:

select 'my message';
于 2008-11-20T02:08:23.167 に答える
8
select "my message" as message
于 2008-11-20T02:40:03.833 に答える
4

私は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:ここでMSSQLCASE構文を見つけました:-)

于 2008-11-20T02:13:49.003 に答える
2
select top 1 name 
from people
where @MyParameter = whatever

union

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

すべてを 1 つのステートメントで。

于 2008-11-20T04:23:00.507 に答える
0

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
于 2008-11-20T02:41:01.947 に答える