SQLステートメントから定数を返すにはどうすればよいですか?
たとえば、以下のコードを変更して、my(ブール式)がtrueの場合に「mymessage」が返されるようにするにはどうすればよいですか。
if (my boolean expression)
"my message"
else
select top 1 name from people;
私はmssql2000を使用しています
試しましたか:
select 'my message';
select "my message" as message
私は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構文が見つかりました ここ :-)
これを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
select top 1 name
from people
where @MyParameter = whatever
union
select 'my message' as name
where @MyParameter != whatever
オールインワンステートメント。