【问题标题】:select n rows and return a row选择 n 行并返回一行
【发布时间】:2013-12-07 08:15:23
【问题描述】:

有这样的 sql 表:


id          day            name_id_fk
1            1                  1
2            2                  1
3            4                  1
4            3                  1
我想选择这样的一行:

day
1|2|4|3

【问题讨论】:

  • 为什么需要那种形式的结果?
  • 您能否更具体地了解您的问题。为什么是管道?
  • 我有两个表 'name' 和 'day' 想要连续选择一个名字和整天为这个名字

标签: sql sqlite select join


【解决方案1】:
select group_concat(day,'|')
from your_table

SQLFiddle demo

【讨论】:

  • 我想在那天做决定。 i SELECT CASE when day IS 0 THEN 'SA' else 'fr' ....... END As hdays FROM daytable 。我想要这个结果 su|mo|we|tu 。请帮助我
【解决方案2】:

试试这个 Sql ...

DECLARE @cols AS NVARCHAR(MAX)
SET @cols=STUFF((SELECT distinct '|' + CAST( yourcolumnname  AS VARCHAR)
              from  
              (
                SELECT yourcolumnname FROM yourtablename
              ) a
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')        
SELECT @cols

或者你可以试试这个...

DECLARE @cols AS NVARCHAR(MAX)
SET @cols=''
SELECT @cols=@cols+ cast (yourcolumnname AS VARCHAR)+'|' FROM yourtablename
SELECT  substring(@cols,0,len(@cols))

【讨论】:

  • 我使用 Sqlite 我认为 Sqlite 不支持 STUFF !
  • 不起作用:无法准备语句(“DECLARE”附近的 1:语法错误)sqlfiddle.com/#!7/fd1e7/10
猜你喜欢
  • 2013-08-12
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 2022-01-01
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
相关资源
最近更新 更多