SQL,从选择查询中打印一列

Jam*_*eau 5 sql t-sql

我正在尝试将消息中的表中的特定列打​​印给用户。这是表格示例

StateCode  |   EffectiveDate   |   ExpirationDate
---------------------------------------------
  AK       |   2011-12-31      |   2012-12-31
  AL       |   2011-12-31      |   2015-12-31
Run Code Online (Sandbox Code Playgroud)

所有州均如此。我想要做的是选择 GETDATE() 不在有效日期和到期日期之间并向用户打印一条消息。我的 Select 语句有效,但如果返回多个状态,它就会崩溃。有什么方法可以保存列表然后打印它吗?或者我可以采取的另一种方法

这是我现在使用的选择查询,适用于返回的 1 个状态

DECLARE @missingStates varChar(30)
SET @missingStates = Select StateCode FROM StateTable
   WHERE GETDATE() NOT Between StateTable.EffectiveDate AND StateTable.ExpirationDate

PRINT 'States Missing Effective Models'
PRINT @missingStates
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

Yur*_*ter 2

您必须将多个值组合成一个变量:

DECLARE @missingStates varChar(30)
SET @missingStates = ''

 Select @missingStates = @missingStates + Code + ' ' FROM StateTable
   WHERE GETDATE() NOT Between StateTable.EffectiveDate AND StateTable.ExpirationDate

PRINT 'States Missing Effective Models'
PRINT @missingStates
Run Code Online (Sandbox Code Playgroud)